# Tags from each remote in a separate "name-space"?

3 messages from 2019-02-28 to 2019-03-01. Participants: Sergey Organov, Duy Nguyen.
Thread: https://gitlist.dev/t/50611

## Sergey Organov, 2019-02-28 05:54

Subject: Tags from each remote in a separate "name-space"?
Message-ID: <87d0ncihkg.fsf@javad.com>
URL: https://gitlist.dev/e/87d0ncihkg.fsf%40javad.com

```
Hello,

How do I configure git to handle tags from remotes in a manner similar
to branches?

Specifically, I want tag 'tag_name' from remote 'origin' to have local
name 'origin/tag_name', not 'tag_name', as it is by default. For a repo
with a lot of remotes[*] it would allow to keep track of what tag came from
where, as well as prevent name conflicts between tags from different
remotes (and/or local tags).

Fetch-only solution ('fetch', 'pull', and 'remote update' support only)
would do, though push support would be interesting to have as well, so
that, say

$ git push origin/tag_name

works as

$ git push origin origin/tag_name:refs/tags/tag_name

Am I dreaming, or is it already supported?

[*] I ran into it managing Linux kernel sources for different ARM
architectures. Mainstream Linux plus stable Linux plus 2 vendor-specific
remotes plus 3 our local remotes made a mess of various tags in the
repository.

-- Sergey

```

## Duy Nguyen, 2019-02-28 08:11

Subject: Re: Tags from each remote in a separate "name-space"?
Message-ID: <20190228081103.GA22075@dektop>
URL: https://gitlist.dev/e/20190228081103.GA22075%40dektop
In-Reply-To: <87d0ncihkg.fsf@javad.com>

```
On Thu, Feb 28, 2019 at 08:54:23AM +0300, Sergey Organov wrote:
> Hello,
> 
> How do I configure git to handle tags from remotes in a manner similar
> to branches?
> 
> Specifically, I want tag 'tag_name' from remote 'origin' to have local
> name 'origin/tag_name', not 'tag_name', as it is by default. For a repo
> with a lot of remotes[*] it would allow to keep track of what tag came from
> where, as well as prevent name conflicts between tags from different
> remotes (and/or local tags).

On the fetch side, something like this in the config file (assuming
"origin" remote here) probably would do

[remote "origin"]
	fetch = +refs/tags/*:refs/tags/origin/*
	tagOpt = --no-tags

I'm not so sure about the push side.

PS. it would be nice if "git remote" has --no-shared-tags option or
something to do this, assuming that it works perfectly well.
--
Duy

```

## Sergey Organov, 2019-03-01 14:51

Subject: Re: Tags from each remote in a separate "name-space"?
Message-ID: <87wolizm07.fsf@javad.com>
URL: https://gitlist.dev/e/87wolizm07.fsf%40javad.com
In-Reply-To: <20190228081103.GA22075@dektop>

```
Duy Nguyen <pclouds@gmail.com> writes:
> On Thu, Feb 28, 2019 at 08:54:23AM +0300, Sergey Organov wrote:
>> Hello,
>> 
>> How do I configure git to handle tags from remotes in a manner similar
>> to branches?
>> 
>> Specifically, I want tag 'tag_name' from remote 'origin' to have local
>> name 'origin/tag_name', not 'tag_name', as it is by default. For a repo
>> with a lot of remotes[*] it would allow to keep track of what tag came from
>> where, as well as prevent name conflicts between tags from different
>> remotes (and/or local tags).
>
> On the fetch side, something like this in the config file (assuming
> "origin" remote here) probably would do
>
> [remote "origin"]
> 	fetch = +refs/tags/*:refs/tags/origin/*
> 	tagOpt = --no-tags

Thanks for the clue, Duy!

Just adding

	fetch = +refs/tags/*:refs/tags/origin/*

for each existing remote configuration seems to do the trick indeed.

Now I wonder if it would make sense to implement something like

  $ git remote add --separate-tags ...

to be able to auto-configure this.

-- 
Sergey

```
