On Thu, Jun 7, 2012 at 10:08 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > * The auto-follow kicks in whenever you tell "fetch" to update some > refs locally. Maybe if we tweak the rule and auto-follow kick in > only when you tell "fetch" to update some refs outside refs/tags > locally, > > $ git fetch $over_there tag v1.0.0 > > will fetch and store _only_ the v1.0.0 tag. > > Of course, any behaviour change is a regression, and if done > without an escape hatch, such a change robs people one useful > feature: grab tag v1.0.0 and others older than that tag in one > go. > > I won't be coding any of the above; just thinking aloud. Here is the code to implement your 2nd approach, and I don't think this behaviour change is a regression, because if someone is really relying this fetch one tag actually fetch all tags feature he is relying on a broken feature, and should be corrected: if one really need to fetch all tags, that's what explicit "--tags" designed and documented for diff --git a/builtin/fetch.c b/builtin/fetch.c index bb9a074..b6d7ef3 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -158,7 +158,8 @@ static struct ref *get_ref_map(struct transport *transport, if (ref_count || tags == TAGS_SET) { for (i = 0; i < ref_count; i++) { get_fetch_map(remote_refs, &refs[i], &tail, 0); - if (refs[i].dst && refs[i].dst[0]) + if (refs[i].dst && refs[i].dst[0] + && prefixcmp(refs[i].dst, "refs/tags/")) *autotags = 1; } /* Merge everything on the command line, but not --tags */ -- cheng renquan (程任全) -- 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