From: Nathan Gray <n8gray@n8gray.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: Why aren't tag refs namespaced?
Date: Thu, 26 Apr 2012 16:33:07 -0700 [thread overview]
Message-ID: <CA+7g9JzpLkNHT_o1QyJ_r=4DrauWOPFr5XR_CPeAHGcLpLoD+w@mail.gmail.com> (raw)
In-Reply-To: <xmqqty068ffd.fsf@junio.mtv.corp.google.com>
On Thu, Apr 26, 2012 at 12:24 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Nathan Gray <n8gray@n8gray.org> writes:
>
>> So why is it that tag refs don't follow this model?
>
> Because the assumed development model for "people work inside their
> private world (i.e. "branch"), but integration happens in common
> namespace (i.e. somebody eventually pushes to "master branch" of the
> repository that every project participant considers authoritative) and
> the end product of the project is tagged there for everybody's
> consumption. When something is called "version 1.0", it only invites
> confusion if _my_ Git version 1.0 is different from _your_ Git version
> 1.0, and it makes no sense for tags used in this manner not to be in a
> global single namespace. People need to qualify such "version 1.0" as
> "Junio's version 1.0" vs "Nathan's version 1.0" if they want to avoid
> confusion anyway, and at that point you would not be talking about
> refs/tags/v1.0, but refs/tags/jc/v1.0 vs refs/tags/ng/v1.0 or something.
I see your point, but the assumption that there is some global tagging
authority is quite surprising to me, considering the distributed
nature of git. And honestly, I don't think it would be so confusing.
Imagine:
[~/src/git]$ git tag
my-tag
my-other-tag
[~/src/git]$ git tag -a
my-tag
my-other-tag
remotes/joeShmoe/v1.0
remotes/junio/v1.0
I think people would know which v1.0 to trust, in the same way that
they know which is the authoritative branch when dealing with multiple
remotes.
I actually think this model is less confusing, in the sense that it
helps unify the concept of "remote". There's this thing called a
remote that represents the last-known state of a remote repository.
That state includes branches, tags, etc. You can choose to
incorporate that state into your own or ignore it, but it
fundamentally belongs to the other repo and you can't change it except
by pushing. Right now that's the way that branches work, but tags
have their own rules for you to learn.
> Other workflows that use private tags are possible and they might
> benefit from having separate namespaces; it is just that they are not
> the workflow Git was originally designed to support.
That makes sense.
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
next prev parent reply other threads:[~2012-04-26 23:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-26 18:40 Why aren't tag refs namespaced? Nathan Gray
2012-04-26 19:24 ` Junio C Hamano
2012-04-26 23:33 ` Nathan Gray [this message]
2012-04-27 3:26 ` Junio C Hamano
2012-04-26 20:06 ` Marc Branchaud
2012-04-26 23:34 ` Nathan Gray
[not found] ` <CABURp0okZ=-sq7e0ReUepCOEUC=9r2845wQ6H3HhruRg8Jd6Dg@mail.gmail.com>
2012-04-26 23:48 ` Nathan Gray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CA+7g9JzpLkNHT_o1QyJ_r=4DrauWOPFr5XR_CPeAHGcLpLoD+w@mail.gmail.com' \
--to=n8gray@n8gray.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).