Subject: Re: [PATCH 07/11] git-fetch: Limit automated tag following to only fetched objects

From: Junio C Hamano <[email-masked]>
Date: Fri, 09 Nov 2007 14:26:20 -0800

"Shawn O. Pearce" <[email-masked]> writes:

> We now redefine the rule to be: "tags are fetched if they refer
> to an object that was just transferred; that is an object that is
> new to your repository".  This rule is quite simple to understand,
> you only get a tag if you just got the object it refers to.

In other words, if I do this:

	git fetch git-gui master

(which should not follow any tags) when your master is a bit
ahead of a new tag in git-gui I do not have, and then
immediately afterwards if I do:

	git fetch git-gui

I will not get the new tag followed?

If that is what the patch does, it feels like a regression.

The intended behaviour was "when tag following is enabled, they
are followed if they refer to an object that is reachable from
your existing refs".

But this is quite expensive to compute.  If a tag points at a
blob that is contained inside a commit that is reachable from a
ref, we would need to grep "git rev-list --objects -all" output
to find it out.  I do not offhand recall what the scripted
version did, but I would not be surprised if as an approximation
we did the auto-following by "does the pointee exist" check.

What "random behaviour" are you trying to fix?