Re: [PATCH v3 3/4] name-rev: provide debug output
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 31, 2017, 18:06 UTC
- Message-ID
- <xmqqd1cxz5gb.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <14D0E7F4-0DC7-42ED-8DEE-B0338ECBA80D@grubix.eu>
Michael J Gruber <git@grubix.eu> writes:
Show 19 quoted lines
>>The only case that this change may make a difference I can think of >>is when you have a tag object pointed at from outside refs/tags >>(e.g. refs/heads/foo is a tag object); if you are trying to change >>the definition of "from_tag" from the current "Is the tip inside >>refs/tags/?" to "Is the tip either inside refs/tags/ or is it a tag >>object anywhere?", that may be a good change (I didn't think things >>through, though), but that shouldn't be hidden inside a commit that >>claims to only add support for debugging. >> >>What problem are you solving? > > Sorry, I forgot about that change and failed to mention it. > > It makes no difference in the non-debug case which cares about the > Boolean only. In the debug case, I want to distinguish between > annotated and lightweight tags, just like describe --debug does. By > adding 1 via deref and passing this down, I know that an annotated tag > gets the value 2, a lightweight tag 1 and everything else 0, just like > describe --tags.
So it sounds like you meant to do something else, and the implementation is wrong for that something else (i.e. it wouldn't do the right thing for a tag object outside refs/tags/, with or without the "--debug" option passed).
Show 13 quoted lines
>>> @@ -236,7 +273,6 @@ static int name_ref(const char *path, const
>>struct object_id *oid, int flags, vo
>>> }
>>>
>>> add_to_tip_table(oid->hash, path, can_abbreviate_output);
>>> -
>>> while (o && o->type == OBJ_TAG) {
>>> struct tag *t = (struct tag *) o;
>>> if (!t->tagged)
>>
>>This is a patch noise we can do without.
>>
>>Thanks.