Re: [PATCH 04/17] Name local variables more consistently

2012-08-27 Thread Junio C Hamano
Jeff King  writes:

> Yeah, I agree that "refnames" would be better. I think something like
> "spec" or "refspec" would indicate better that they are to be matched
> against, but then you run afoul of confusing that with colon-delimited
> refspecs (which I do not think fetch-pack understands at all).

Correct.  It only takes the LHS of the refspecs, following the "one
tool does one specific thing" philosophy.  The arrangement was that
the calling script interpreted refspecs, split them into LHS and
RHS, fed the LHS of the refspecs to fetch-pack, and then read the
output to learn which local refs (i.e. RHS of the refspecs) to
update with what value.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-27 Thread Junio C Hamano
Michael Haggerty  writes:

> On 08/26/2012 07:39 PM, Junio C Hamano wrote:
> ...
>> After all, this codepath is not limited to branches these days as
>> the word "head" implies.  Rather,  has what we
>> asked for, and  has what the other sides have, and we are
>> trying to make sure we haven't asked what they do not have in this
>> function.
>> 
>> And the way we do so is to match the "thing"s with what are in
>> "refs" to find unmatched ones.
>> 
>> So between the two, I would have chosen "match" instead of "heads"
>> to call the "thing".
>
> When I decided between "heads" and "match", my main consideration was
> that "match" sounds like something that has already been matched, not
> something that is being matched against.  The word "match" also implies
> to me that some nontrivial matching process is going on, like glob
> expansion.
>
> But I agree with you that "heads" also has disadvantages.
>
> What about a third option: "refnames"?  This name makes it clear that we
> are talking about simple names as opposed to "struct ref" or some kind
> of refname glob patterns and also makes it clear that they are not
> necessarily all branches.  It would also be distinct from the "refs"
> linked list that is often used in the same functions.

"refnames" has a similar issue as "match", as you have pointed out,
and more.  Was it the remote or us who populated the "refnames"
(answer: these are "our" refnames, and the other one "refs" is what
they have)?  What do we have that "refnames" for (answer: these
specify what we are going to pick among what they have)?

Perhaps "asked"?  At the beginning of the processing, we have all
that were asked for, and at the end, we leave what were asked for
but were not fulfilled.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-27 Thread Jeff King
On Mon, Aug 27, 2012 at 11:22:36AM +0200, Michael Haggerty wrote:

> > Using one name is better, but I wonder "heads" is the better one
> > between the two.
> > 
> > After all, this codepath is not limited to branches these days as
> > the word "head" implies.  Rather,  has what we
> > asked for, and  has what the other sides have, and we are
> > trying to make sure we haven't asked what they do not have in this
> > function.
> > 
> > And the way we do so is to match the "thing"s with what are in
> > "refs" to find unmatched ones.
> > 
> > So between the two, I would have chosen "match" instead of "heads"
> > to call the "thing".
> 
> When I decided between "heads" and "match", my main consideration was
> that "match" sounds like something that has already been matched, not
> something that is being matched against.  The word "match" also implies
> to me that some nontrivial matching process is going on, like glob
> expansion.
> 
> But I agree with you that "heads" also has disadvantages.
> 
> What about a third option: "refnames"?  This name makes it clear that we
> are talking about simple names as opposed to "struct ref" or some kind
> of refname glob patterns and also makes it clear that they are not
> necessarily all branches.  It would also be distinct from the "refs"
> linked list that is often used in the same functions.

Yeah, I agree that "refnames" would be better. I think something like
"spec" or "refspec" would indicate better that they are to be matched
against, but then you run afoul of confusing that with colon-delimited
refspecs (which I do not think fetch-pack understands at all).

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-27 Thread Michael Haggerty
On 08/26/2012 07:39 PM, Junio C Hamano wrote:
> Jeff King  writes:
> 
>> On Thu, Aug 23, 2012 at 10:10:29AM +0200, mhag...@alum.mit.edu wrote:
>>
>>> From: Michael Haggerty 
>>>
>>> Use the names (nr_heads, heads) consistently across functions, instead
>>> of sometimes naming the same values (nr_match, match).
>>
>> I think this is fine, although:
>>
>>> --- a/builtin/fetch-pack.c
>>> +++ b/builtin/fetch-pack.c
>>> @@ -521,7 +521,7 @@ static void mark_recent_complete_commits(unsigned long 
>>> cutoff)
>>> }
>>>  }
>>>  
>>> -static void filter_refs(struct ref **refs, int nr_match, char **match)
>>> +static void filter_refs(struct ref **refs, int nr_heads, char **heads)
>>>  {
>>> struct ref **return_refs;
>>> struct ref *newlist = NULL;
>>> @@ -530,12 +530,12 @@ static void filter_refs(struct ref **refs, int 
>>> nr_match, char **match)
>>> struct ref *fastarray[32];
>>> int match_pos;
>>
>> This match_pos is an index into the "match" array, which becomes "head".
>> Should it become head_pos?
>>
>> And then bits like this:
>>
>>> -   while (match_pos < nr_match) {
>>> -   cmp = strcmp(ref->name, match[match_pos]);
>>> +   while (match_pos < nr_heads) {
>>> +   cmp = strcmp(ref->name, heads[match_pos]);
>>
>> Would be:
>>
>>   while (head_pos < nr_heads)
>>
>> which makes more sense to me.
> 
> Using one name is better, but I wonder "heads" is the better one
> between the two.
> 
> After all, this codepath is not limited to branches these days as
> the word "head" implies.  Rather,  has what we
> asked for, and  has what the other sides have, and we are
> trying to make sure we haven't asked what they do not have in this
> function.
> 
> And the way we do so is to match the "thing"s with what are in
> "refs" to find unmatched ones.
> 
> So between the two, I would have chosen "match" instead of "heads"
> to call the "thing".

When I decided between "heads" and "match", my main consideration was
that "match" sounds like something that has already been matched, not
something that is being matched against.  The word "match" also implies
to me that some nontrivial matching process is going on, like glob
expansion.

But I agree with you that "heads" also has disadvantages.

What about a third option: "refnames"?  This name makes it clear that we
are talking about simple names as opposed to "struct ref" or some kind
of refname glob patterns and also makes it clear that they are not
necessarily all branches.  It would also be distinct from the "refs"
linked list that is often used in the same functions.

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-26 Thread Junio C Hamano
Jeff King  writes:

> On Thu, Aug 23, 2012 at 10:10:29AM +0200, mhag...@alum.mit.edu wrote:
>
>> From: Michael Haggerty 
>> 
>> Use the names (nr_heads, heads) consistently across functions, instead
>> of sometimes naming the same values (nr_match, match).
>
> I think this is fine, although:
>
>> --- a/builtin/fetch-pack.c
>> +++ b/builtin/fetch-pack.c
>> @@ -521,7 +521,7 @@ static void mark_recent_complete_commits(unsigned long 
>> cutoff)
>>  }
>>  }
>>  
>> -static void filter_refs(struct ref **refs, int nr_match, char **match)
>> +static void filter_refs(struct ref **refs, int nr_heads, char **heads)
>>  {
>>  struct ref **return_refs;
>>  struct ref *newlist = NULL;
>> @@ -530,12 +530,12 @@ static void filter_refs(struct ref **refs, int 
>> nr_match, char **match)
>>  struct ref *fastarray[32];
>>  int match_pos;
>
> This match_pos is an index into the "match" array, which becomes "head".
> Should it become head_pos?
>
> And then bits like this:
>
>> -while (match_pos < nr_match) {
>> -cmp = strcmp(ref->name, match[match_pos]);
>> +while (match_pos < nr_heads) {
>> +cmp = strcmp(ref->name, heads[match_pos]);
>
> Would be:
>
>   while (head_pos < nr_heads)
>
> which makes more sense to me.

Using one name is better, but I wonder "heads" is the better one
between the two.

After all, this codepath is not limited to branches these days as
the word "head" implies.  Rather,  has what we
asked for, and  has what the other sides have, and we are
trying to make sure we haven't asked what they do not have in this
function.

And the way we do so is to match the "thing"s with what are in
"refs" to find unmatched ones.

So between the two, I would have chosen "match" instead of "heads"
to call the "thing".
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-24 Thread Michael Haggerty
On 08/23/2012 10:39 AM, Jeff King wrote:
> On Thu, Aug 23, 2012 at 10:10:29AM +0200, mhag...@alum.mit.edu wrote:
> 
>> From: Michael Haggerty 
>>
>> Use the names (nr_heads, heads) consistently across functions, instead
>> of sometimes naming the same values (nr_match, match).
> 
> I think this is fine, although:
> 
>> --- a/builtin/fetch-pack.c
>> +++ b/builtin/fetch-pack.c
>> @@ -521,7 +521,7 @@ static void mark_recent_complete_commits(unsigned long 
>> cutoff)
>>  }
>>  }
>>  
>> -static void filter_refs(struct ref **refs, int nr_match, char **match)
>> +static void filter_refs(struct ref **refs, int nr_heads, char **heads)
>>  {
>>  struct ref **return_refs;
>>  struct ref *newlist = NULL;
>> @@ -530,12 +530,12 @@ static void filter_refs(struct ref **refs, int 
>> nr_match, char **match)
>>  struct ref *fastarray[32];
>>  int match_pos;
> 
> This match_pos is an index into the "match" array, which becomes "head".
> Should it become head_pos?
> 
> And then bits like this:
> 
>> -while (match_pos < nr_match) {
>> -cmp = strcmp(ref->name, match[match_pos]);
>> +while (match_pos < nr_heads) {
>> +cmp = strcmp(ref->name, heads[match_pos]);
> 
> Would be:
> 
>   while (head_pos < nr_heads)
> 
> which makes more sense to me.

I was up in the air about this, because match_pos *is* the position at
which a match is attempted.  But since the name also strikes you as
wrong, I will change it in the next version.

Thanks for this and all of your other comments!

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/17] Name local variables more consistently

2012-08-23 Thread Jeff King
On Thu, Aug 23, 2012 at 10:10:29AM +0200, mhag...@alum.mit.edu wrote:

> From: Michael Haggerty 
> 
> Use the names (nr_heads, heads) consistently across functions, instead
> of sometimes naming the same values (nr_match, match).

I think this is fine, although:

> --- a/builtin/fetch-pack.c
> +++ b/builtin/fetch-pack.c
> @@ -521,7 +521,7 @@ static void mark_recent_complete_commits(unsigned long 
> cutoff)
>   }
>  }
>  
> -static void filter_refs(struct ref **refs, int nr_match, char **match)
> +static void filter_refs(struct ref **refs, int nr_heads, char **heads)
>  {
>   struct ref **return_refs;
>   struct ref *newlist = NULL;
> @@ -530,12 +530,12 @@ static void filter_refs(struct ref **refs, int 
> nr_match, char **match)
>   struct ref *fastarray[32];
>   int match_pos;

This match_pos is an index into the "match" array, which becomes "head".
Should it become head_pos?

And then bits like this:

> - while (match_pos < nr_match) {
> - cmp = strcmp(ref->name, match[match_pos]);
> + while (match_pos < nr_heads) {
> + cmp = strcmp(ref->name, heads[match_pos]);

Would be:

  while (head_pos < nr_heads)

which makes more sense to me.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html