From: Junio C Hamano <gitster@pobox.com>
To: Christian Couder <christian.couder@gmail.com>
Cc: Karthik Nayak <karthik.188@gmail.com>, git <git@vger.kernel.org>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Subject: Re: [PATCH v7 03/12] for-each-ref: change comment in ref_sort
Date: Fri, 12 Jun 2015 13:27:20 -0700 [thread overview]
Message-ID: <xmqqh9qcd653.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <CAP8UFD3nsxX0XEVwxdMBRR8OQDu=ary6Bm2AD7wprAU0BC8tXA@mail.gmail.com> (Christian Couder's message of "Fri, 12 Jun 2015 21:49:26 +0200")
Christian Couder <christian.couder@gmail.com> writes:
> I think it is needed later when "struct ref_sort" is moved into
> ref-filter.h, because then the used_atom[] array is not moved.
Now I am confused. used_atom[] is the mechanism we use to give a
small integer to each atom used in the %(placeholder) string, so
that we do not have to refer to them as "placeholder" string and we
do not have to call !strcmp() to compare for equality. How can a
field in ref_sort refer to it internally if used_atom[] is not
visible?
Indeed, ref-filter.c after the series does have used_atom[] and
get_ref_atom_value() does use atom to index into it. So these two
lines do not make much sense to me. I am puzzled.
If by "moved" you are referring to the fact that the structure and
its fields are exposed to the callers of the API while the
implementation detail of the mechanism to give short integer to each
used atom is not exposed to them, then I do agree that the comment
to the structure field as the external API definition should not
talk about used_atom[] array.
Perhaps in 03/12, you can stop talking about the implementation
(i.e. the value is used to index into used_atom[] to get to the
original string) and instead start talking about what the value
means to the callers (that are still internal to for-each-ref
implementation), to make things better.
Having said that, I am not sure if there is a sensible description
for that field if you avoid exposing the implementation detail.
You would probably want to start by asking what that value means.
For (evantual) external callers, the number is what they get from
parse_ref_filter_atom(); calling that function is the only way they
can get an appropriate value to stuff in the field, and
parse_opt_ref_sorting() is the most likely function external callers
use to make that happen.
"The number internally used to represent an attribute of a ref used
when sorting the set of refs" would be one way to say what it is
without exposing the implementation detail to the readers.
But does that help anybody? I doubt it. It is mouthful for
external users, and it is not concrete enough for implementors.
So either
- treat ref-filter.h as information for API users, and not talk
about what it means at all, or
- treat ref-filter.h as information for both API users and API
implementors, and describe it as an index into used_atom[],
i.e. do not change anything.
I'd say the latter is a more sensible way to go. I think it is also
OK to change this comment to "index into used_atom array (internal)"
when ref-filter.h is created as an external API definition.
next prev parent reply other threads:[~2015-06-12 20:27 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 16:07 [PATCH v7 0/12] Create ref-filter from for-each-ref Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 01/12] for-each-ref: extract helper functions out of grab_single_ref() Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 02/12] for-each-ref: clean up code Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 03/12] for-each-ref: change comment in ref_sort Karthik Nayak
2015-06-12 17:40 ` Junio C Hamano
2015-06-12 17:48 ` Karthik Nayak
2015-06-12 18:04 ` Junio C Hamano
2015-06-12 18:29 ` Karthik Nayak
2015-06-12 19:49 ` Christian Couder
2015-06-12 20:27 ` Junio C Hamano [this message]
2015-06-12 21:22 ` karthik nayak
2015-06-11 16:09 ` [PATCH v7 04/12] for-each-ref: rename 'refinfo' to 'ref_array_item' Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 05/12] for-each-ref: introduce new structures for better organisation Karthik Nayak
2015-06-11 17:41 ` Matthieu Moy
2015-06-11 17:56 ` Karthik Nayak
2015-06-11 19:13 ` Matthieu Moy
2015-06-11 19:21 ` Karthik Nayak
2015-06-11 19:47 ` Matthieu Moy
2015-06-11 16:09 ` [PATCH v7 06/12] for-each-ref: introduce 'ref_array_clear()' Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 07/12] for-each-ref: rename some functions and make them public Karthik Nayak
2015-06-11 16:09 ` [PATCH v7 08/12] for-each-ref: rename variables called sort to sorting Karthik Nayak
2015-06-11 16:10 ` [PATCH v7 09/12] ref-filter: add 'ref-filter.h' Karthik Nayak
2015-06-11 16:10 ` [PATCH v7 10/12] ref-filter: move code from 'for-each-ref' Karthik Nayak
2015-06-11 16:10 ` [PATCH v7 11/12] for-each-ref: introduce filter_refs() Karthik Nayak
2015-06-11 17:00 ` Matthieu Moy
2015-06-11 17:17 ` Karthik Nayak
2015-06-12 19:38 ` Junio C Hamano
2015-06-11 17:21 ` Karthik Nayak
2015-06-11 16:10 ` [PATCH v7 12/12] ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname Karthik Nayak
2015-06-12 17:30 ` [PATCH v7 01/12] for-each-ref: extract helper functions out of grab_single_ref() Junio C Hamano
2015-06-12 17:32 ` Karthik Nayak
2015-06-11 17:03 ` [PATCH v7 0/12] Create ref-filter from for-each-ref Matthieu Moy
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=xmqqh9qcd653.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.