git标签有一个标准的命名约定吗?

我已经看到很多使用v1.2.3的项目作为git中标签的命名约定。 我也看到了一些使用1.2.3 。 有官方认可的风格,还是有任何使用两者的好论据?


Semantic Versioning的1.0.0版本由GitHub fame的Tom Preston-Werner提出了一个子规范来解决这个问题:

标记规范(SemVerTag)

如果你使用版本控制系统(Git,Mercurial,SVN等)存储你的代码,应该使用这个子规范。 使用此系统可以使用自动化工具检查您的软件包并确定SemVer合规性和已发布的版本。

  • 在版本控制系统中为版本添加标签时,版本的标签必须为“vX.YZ”,例如“v3.1.0”
  • 然而,经过讨论后,这个问题被删除了,并且不再出现在最新版本的SemVer规范中(编写本文时为2.0.0)。 稍后的讨论线索进入更深层次,并导致新的Is“v1.2.3”语义版本? 被添加到SemVer master分支的常见问题解答中,尽管在撰写本文时(超过2年后),这一变化在官方发布的规范中仍然不存在。


    似乎有两个主要的约定(假设你自己也遵守一些合理的编号发布的标准):

  • v1.2.3
  • 1.2.3
  • v1.2.3的好处在于,Git文档(以及Mercurial文档)在其示例中使用了该格式,并且Linux内核和Git等几个“权威”使用它。 (所提到的语义版本控制曾经使用它,但是不再使用它。)

    1.2.3的优点是gitweb或GitHub可以自动提供表单packagename-$tag.tar.gz的压缩包或压缩包下载(我认为tarball不应该被命名为package-v1.2.3.tar.gz )。 或者,您可以直接使用git describe来生成tarball版本号。 对于没有正式发布过程的轻量级项目,这些可能性可能相当方便。 还应该注意的是,语义版本控制绝不是版本编号唯一或普遍接受的标准。 像GNOME这样的着名项目以及无数其他项目都使用1.2.3标记命名。

    我认为巩固这些立场可能为时已晚。 一如既往,保持一致并且合理。


    更新:正如在这个评论中提到的,GitHub现在提供了一个tarball名字,其中的'v'被剥离了标签。


    前面的'v'的原因是历史的。 较老的SCCS(cvs,rcs)无法区分标签标识符和修订版号。 标签标识符被限制为不以数字值开头,以便可以检测修订号。

    链接地址: http://www.djcxy.com/p/41317.html

    上一篇: Is there a standard naming convention for git tags?

    下一篇: Application & Database architechture