git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Why aren't tag refs namespaced?

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 26, 2012, 19:24 UTC
Message-ID
<xmqqty068ffd.fsf@junio.mtv.corp.google.com>
In-Reply-To
<CA+7g9Jxc6eaCUR8aVhqKH--sOrvQVrZn+se7wtFJsOiKNjz9Pg@mail.gmail.com>
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.

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.

Previous: Nathan GrayNext: Nathan Gray
Message 2 of 7 in “Why aren't tag refs namespaced?”
  1. Nathan GrayApr 26, 2012
  2. Junio C HamanoApr 26, 2012
  3. Nathan GrayApr 26, 2012
  4. Junio C HamanoApr 27, 2012
  5. Marc BranchaudApr 26, 2012
  6. Nathan GrayApr 26, 2012
  7. Nathan GrayApr 26, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.