git标签有一个标准的命名约定吗?
我已经看到很多使用v1.2.3
的项目作为git中标签的命名约定。 我也看到了一些使用1.2.3
。 有官方认可的风格,还是有任何使用两者的好论据?
Semantic Versioning的1.0.0版本由GitHub fame的Tom Preston-Werner提出了一个子规范来解决这个问题:
标记规范(SemVerTag)
如果你使用版本控制系统(Git,Mercurial,SVN等)存储你的代码,应该使用这个子规范。 使用此系统可以使用自动化工具检查您的软件包并确定SemVer合规性和已发布的版本。
然而,经过讨论后,这个问题被删除了,并且不再出现在最新版本的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