gpt4 book ai didi

svn - 为什么在版本控制系统中移动标签是一种不好的做法?

转载 作者:行者123 更新时间:2023-12-04 19:41:57 25 4
gpt4 key购买 nike

为什么在版本控制系统中移动标签是一种不好的做法?我经常遇到这个一般性建议,但从未见过背后的解释。

注意:我使用了我认为与 CVS 更相关的术语“移动标签”。但是对于 SVN 来说,当我们只在标签文件夹中提交更改时,这是一个类似的概念。

我的具体情况在这里:我使用SVN。我将使用构建系统自动创建标签。在创建新标签后,构建系统会将标签描述信息放入标记文件之一,提交,并在此更改的文件上移动标签。

我可以理解,如果在项目上设置了标签,并且对项目进行了测试,那么对标签进行更改可能会导致团队之间的误解。有人可能会 checkout 旧版本的标签,而另一个人可能会 checkout 新版本。但是在正式宣布之前对标签进行更改有什么不好的吗?

我认为是否移动标签的决定可能取决于项目类型(商业、开源、个人)、从事项目的人数、标签创建后耗时、开发过程类型。

最佳答案

标签通常被认为是存储库特定状态的不可变快照。有几个工具,例如 CI 工具,适用于这个假设。这是一条重要的规则,它确保您有一种独特的方式来引用项目的特定状态。

这就像 SVN 中的修订号或 Git 中的 SHA1 提交哈希。当人员或工具使用提交标识符引用提交时,他们确信他们在谈论特定版本。

这同样适用于标签。如果您使用的规则是一旦存储库的状态被标记就不能改变,这意味着每个人(包括人员和工具)都可以安全地假设如果有问题,每个人都存在问题。如果应用程序行为或行为不端,那么对于任何检查该特定标签的人来说,它都会表现或行为不端。

这是一个需要牢记的非常重要的概念,因为一旦你打破了这个假设,你最终可能会花费更多的时间来尝试使用你在阅读 CI 日志或与其他开发人员交谈时引用的标签版本进行调试.

关于svn - 为什么在版本控制系统中移动标签是一种不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12581969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com