Junio C Hamano <gitster@xxxxxxxxx> wrote: > Brandon Casey <casey@xxxxxxxxxxxxxxx> writes: > > > > But, I did not expect these to fetch tags: > > > > git fetch <repo> <branch>:<branch> > > git pull <repo> <branch>:<branch> > > Sigh... that matches my expectation. > > Did we break it when we overhauled "git fetch", or was this an > independent "improvement" that happened long before that? I think during the git-fetch builtin marathon this got implemented, but probably as a feature masquerading as a bug fix and we didn't notice the regression. The theory behind the expectation here is if we are fetching the object to a tracking ref then we probably want to watch it in the future. If we want to watch it and tag following was allowed, and we are missing a tag, we should follow the tag if we have the object graph under the tag complete. Now what should: git pull <repo> <branch1>:<branch1> <branch2> do, especially if <branch2> is referring to an object that you don't already have, that object also isn't reachable through <branch1>, but <branch2>^0 is the target of a tag <tag2> that you don't have? Should we get the tag anyway? Personally I'd expect us to skip the tag pointing at <branch2>^0, based upon my description above, but I have a feeling we'd follow it anyway, as tag following was enabled and at least one item in the fetchspec provided asked for storage to a tracking ref and we have <tag2>^{} complete. Of course even if we didn't follow that tag right away a future: git fetch <repo> <branch1>:<branch1> might cause us to get the tag anyway, as <branch2>^0 is now reachable through HEAD, due to the implicit git-merge we ran above. ;-) -- Shawn. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html