Michael J Gruber <g...@grubix.eu> writes: >>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). >>> @@ -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.