All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, christian.couder@gmail.com,
	Matthieu.Moy@grenoble-inp.fr
Subject: Re: [WIP/PATCH v4 6/8] for-each-ref: rename some functions and make them public
Date: Sun, 31 May 2015 10:48:55 -0700	[thread overview]
Message-ID: <xmqqmw0kab94.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1433008411-8550-6-git-send-email-karthik.188@gmail.com> (Karthik Nayak's message of "Sat, 30 May 2015 23:23:29 +0530")

Karthik Nayak <karthik.188@gmail.com> writes:

>  /*
> - * A call-back given to for_each_ref().  Filter refs and keep them for
> + * A call-back given to for_each_ref(). Filter refs and keep them for
>   * later object processing.
>   */
> -static int grab_single_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
> +int ref_filter_handler(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
>  {

I am not sure if this is a good external interface, i.e. to expect
callers of ref-filter API to do this:

	prepare cbdata;
	for_each_ref(ref_filter_handler, &cbdata);

It might be better to expect callers to do this instead:

	prepare cbdata;
        filter_refs(for_each_ref, &cbdata);

i.e. introducing a new "filter_refs()" function as the entry point
to the ref-filter API.  The filter_refs() entry point may internally
use ref_filter_handler() that will be file-scope static to ref-filter.c
and at that point the overly generic "-handler" name would not bother
anybody ;-) but more importantly, then you can extend the function
signature of filter_refs() not to be so tied to for_each_ref() API.
It could be that the internals of cbdata may not be something the
callers of filter-refs API does not even have to know about, in
which case the call might even become something like:

	struct ref_array refs = REF_ARRAY_INIT;
        const char **ref_patterns = { "refs/heads/*", "refs/tags/*", NULL};

	filter_refs(&refs, for_each_rawref, ref_patterns);

        /* now "refs" has the result, the caller uses them */
	for (i = 0; i < refs.nr; i++)
        	refs.item[i];

Just a thought.

  parent reply	other threads:[~2015-05-31 17:49 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5569EF77.4010300@gmail.com>
2015-05-30 17:53 ` [WIP/PATCH v4 1/8] for-each-ref: extract helper functions out of grab_single_ref() Karthik Nayak
2015-05-31  2:58   ` Eric Sunshine
2015-05-31  8:11     ` Karthik Nayak
2015-05-31 17:34   ` Junio C Hamano
2015-05-31 17:48     ` Karthik Nayak
2015-05-31 20:39     ` Matthieu Moy
2015-06-01 14:39       ` Junio C Hamano
2015-05-30 17:53 ` [WIP/PATCH v4 2/8] for-each-ref: simplify code Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 3/8] for-each-ref: rename 'refinfo' to 'ref_array_item' Karthik Nayak
2015-05-31 17:37   ` Junio C Hamano
2015-05-31 17:48     ` Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 4/8] for-each-ref: introduce new structures for better organisation Karthik Nayak
2015-05-31  3:14   ` Eric Sunshine
2015-05-31  8:16     ` Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 5/8] for-each-ref: introduce 'ref_filter_clear_data()' Karthik Nayak
2015-05-31  7:38   ` Christian Couder
2015-05-31  8:20     ` Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 6/8] for-each-ref: rename some functions and make them public Karthik Nayak
2015-05-31  3:21   ` Eric Sunshine
2015-05-31  8:16     ` Karthik Nayak
2015-05-31  8:04   ` Christian Couder
2015-05-31  8:11     ` Christian Couder
2015-05-31  9:17       ` Karthik Nayak
2015-05-31 14:03         ` Christian Couder
2015-05-31 15:30           ` Karthik Nayak
2015-06-01  6:38           ` Matthieu Moy
2015-06-01 19:28             ` Karthik Nayak
2015-05-31 17:54     ` Junio C Hamano
2015-05-31 17:48   ` Junio C Hamano [this message]
2015-05-31 19:34     ` Karthik Nayak
2015-06-01 14:53       ` Junio C Hamano
2015-06-01 19:35         ` Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 7/8] ref-filter: move code from 'for-each-ref' Karthik Nayak
2015-05-30 17:53 ` [WIP/PATCH v4 8/8] ref-filter: add 'ref-filter.h' Karthik Nayak
2015-05-31  3:43   ` Eric Sunshine
2015-05-31  8:19     ` Karthik Nayak
2015-05-31  8:29       ` Eric Sunshine
2015-05-31  9:12         ` Karthik Nayak
2015-05-31 20:46       ` Matthieu Moy
2015-05-31 20:50         ` Karthik Nayak
2015-05-31 22:34           ` Christian Couder
2015-06-01  6:47           ` Matthieu Moy
2015-05-31  8:20   ` Christian Couder
2015-05-31  9:16     ` Karthik Nayak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqmw0kab94.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=karthik.188@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.