Re: [RFC PATCH 1/1] Teach remote add the --prefix-tags option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 14, 2019 at 8:07 PM Junio C Hamano <gitster@xxxxxxxxx> wrote:
>
> Wink Saville <wink@xxxxxxxxxxx> writes:
>
> > When --prefix-tags is passed to `git remote add` the tagopt is set to
> > --prefix-tags and a second fetch line is added so tags are placed in
> > a separate hierarchy per remote.
>
>
> In the olden days, there was no refs/remotes/$remoteName/ hiearchy,
> and until we made it the default at around Git 1.5.0, such a modern
> layout for the branches were called the "separate remote" layout,
> and can be opted into with "clone --use-separate-remote" by early
> adopters.
>
> I doubt that use of refs/tags/$remoteName/ is a good design if we
> want to achieve similar isolation between local tags and and tags
> obtained from each remote.
>
> An obvious alternative, refs/remotes/$remoteName/tags/, is not a
> good design for exactly the same reason.  You cannot tell between a
> local tag foo/bar and a tag bar obtained from remote foo when you
> see refs/tags/foo/bar, and you cannot tell between a branch tag/bar
> obtained from remote foo and a tag bar obtained from remote foo when
> you see refs/remotes/foo/tags/bar.  In the past, people suggested to
> use refs/remoteTags/$remoteName/ for proper isolation, and it might
> be a better middle-ground than either of the two, at least in the
> shorter term, but not ideal.
>
> In short, if you truly want to see "separate hierarchy per remote",
> you should consider how you can reliably implement an equivalent of
> "git branch --list --remote"; a design that does not allow it is a
> failure.
>
> A better solution with longer lifetime would probably be to use
>
>         refs/remotes/$remoteName/{heads,tags,...}/
>
> when core.useTotallySeparateRemote configuration exists (and
> eventually at Git 3.0 make the layout the default).  It would
> involve changes in the refname look-up rules, but it would not have
> to pollute refs/ namespace like the refs/remoteTags/ half-ground
> design, which would require us to add refs/remoteNotes/ and friends,
> who knows how many more we would end up having to support if we go
> that route.
>
> Thanks.
>

Something like this makes sense and I've thought about the problem for
a long time. Unfortunately it's quite a bit trickier to do this.

It would solve the problem more generally though, and definitely seems
like the right approach.. but at least for me, every time I looked at
trying this I got lost. I haven't had time to investigate it recently
:(

Thanks,
Jake



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux