Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Why aren't tag refs namespaced?

From: Nathan Gray <hidden>
Date: 2016-06-15 22:53:40

CC'ing the list

On Thu, Apr 26, 2012 at 12:04 PM, Phil Hord [off-list ref] wrote:
On Thu, Apr 26, 2012 at 2:40 PM, Nathan Gray [off-list ref] wrote:
quoted
Namespacing works really well for branch refs.  I know that
remotes/origin/master is origin's master branch.  I may or may not
have a master branch, and it may or may not have anything in common
with origin's.  Our repositories are independent, after all, so it
makes sense that our refs would live in different namespaces.

So why is it that tag refs don't follow this model?
I expect the simple answer is that no one has been motivated to create
such a mode.

quoted
Why is my
"best-commit-ever" tag assumed to be the same as origin's?  Given a
ref in refs/tags it's unclear if the ref is public, private, on origin
or not on origin.  Will pushing my tags create anything new or not?
Who knows?  Compare this to branches, where the same questions are
easy to answer thanks to namespacing.

OTOH, am I just not "getting it?"  I've been using git for about 4
years now and I feel like I know it pretty well but it's possible I'm
just misunderstanding things.

Tags are presumed not to move, so there's no point in having a remote
tag which you follow with your local tag.  In that sense, they are
fundamentally different from branches.  Also, tags are not pushed by
default, though they are fetched if they're on branches you are
fetching.
All that is true, but...
On the other hand, it does invite namespace collisions if
you pull tags from a remote whilst having local tags and no
agreed-upon convention.
Exactly!  Imagine tracking 5 different forks of the same project on
GitHub.  They can't be expected to coordinate their tagging
conventions.
But perhaps a convention is what you need.  Suppose you name all your
local tags "refs/tags/n8gray/best-commit-ever"?  Or maybe you can 'git
fetch origin "refs/tags/*:refs/tags/origin/*"'.
That could probably be made to work, but it requires a fair bit of
effort to keep clean.  Plus you have to make sure you never
accidentally use the built-in tag pushing/pulling stuff or it all
falls apart.

Cheers,
-n8

-- 
HexaLex: A New Angle on Crossword Games for iPhone and iPod Touch
http://hexalex.com
On The App Store: http://bit.ly/8Mj1CU
On Facebook: http://bit.ly/9MIJiV
On Twitter: http://twitter.com/hexalexgame
http://n8gray.org
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help