Re: Fetching tags overwrites existing tags
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 25, 2018, 00:52 UTC
- Message-ID
- <xmqqzi1s3y5h.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <CAKk8isrAmWOdioJe2CdY+2F_AzKxcTGwd+kBsrAmGx-U=ZHGgA@mail.gmail.com>
Wink Saville <wink@saville.com> writes:
Show 13 quoted lines
> Ideally I would have liked the tags fetched from gbenchmark to have a prefix > of gbenchmark/, like the branches have, maybe something like: > > $ git fetch --tags gbenchmark > ... > * [new branch] v2 -> gbenchmark/v2 > * [new tag] v0.0.9 -> gbenchmark/v0.0.9 > * [new tag] v0.1.0 -> gbenchmark/v0.1.0 > * [new tag] v1.0.0 -> gbenchmark/v1.0.0 > * [new tag] v1.1.0 -> gbenchmark/v1.1.0 > * [new tag] v1.2.0 -> gbenchmark/v1.2.0 > * [new tag] v1.3.0 -> gbenchmark/v1.3.0 > * [new tag] v1.4.0 -> gbenchmark/v1.4.0
The tag namespace (refs/tags/) is considered a shared resource (I am not saying that that is the only valid world model---I am merely explaining why things are like they are), hence the auto-following tags will bring them to refs/tags/ (and I do not think there is no way to configure auto-following to place them elsewhere).
But you could configure things yourself.
$ git init victim && cd victim
$ git remote add origin ../git.git
$ git config --add remote.origin.fetch \
"+refs/tags/*:refs/remote-tags/origin/*"
$ tail -n 4 .git/config
[remote "origin"]
url = ../git.git/
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/tags/*:refs/remote-tags/origin/*
$ git fetch --no-tagsThe "--no-tags" option serves to decline the auto-following tags to refs/tags/ hierarchy; once your repository is configured this way, your initial and subsequent "git fetch" will copy refs it finds in refs/tags/ hierarchy over there to your refs/remote-tags/origin/ hierarchy locally.