为什么不提交标签

时间:2011-04-07 08:35:09

标签: svn tags commit

我正在寻找一些论据来说服客户,一旦创建标签,他就不应该对标签进行更改。

常识似乎没有正确的论据所以我需要更实质的东西。

6 个答案:

答案 0 :(得分:25)

标签在固定时间点作为源代码的副本存在 - 无论您对Trunk或任何Branch文件夹做出任何更改,您始终都可以返回到代码时的代码副本已创建。

如果您要提交标记的副本,则它们不再代表创建副本时的来源 - 因此没有必要使用它们。您的客户应该提交到主干或分支机构。

答案 1 :(得分:5)

正在使用该项目的用户可能正在使用某些标记版本的代码。他们知道他们的代码与你指定的标签一起工作,并且会根据这个假设愉快地发布。如果更改标记,则用户的代码可能会中断。标签实际上就是 - 它是一个稳定的里程碑,其他用户可以考虑这一里程碑。

此外,如果项目中有多个开发人员,他们将会在trunk上工作。当他们更新时,他们将无法获得对标签所做的更改,这将导致巨大的合并问题。

答案 2 :(得分:3)

旧帖子,但正如其他人可能还会读到的那样,我会加上我的两分钱:

以前的答案都依赖于您说客户没有回应的常识。试试这个故事: “标签就像是在婚礼上拍摄全家人的照片。你不会拿出你的永久性标记来将姨妈Lisa添加到照片中,不是吗?如果你想画画,请用一张纸代替。(=分支) “

作为旁注,了解客户为何要提交标签会很有趣。当我知道对手想要达到的目标以及背后的需求时,我发现更容易争论。

答案 3 :(得分:2)

标签应该及时指向一些现有的修订版。你基本上给这个版本一个名字,即标签。 在SVN中,tag只是/ tags目录中的一个副本,因此可以提交,但这只是一个实现细节。没有什么能阻止你提交,但这很不寻常,使用标签的人可能会感到困惑这个标签究竟代表什么...标签创建时的原始修订或新的更改。最后,重要的是传达你的意图。

在其他系统中,标签只是指向特定修订的指针。您可以从标记的修订版本创建新分支,但标记仍然指向原始修订版。

答案 4 :(得分:2)

标记版本时,很难预测您以后是​​否需要返回该版本并进行更改。有时你希望你做了一个分支而不仅仅是一个标签,但大多数时候分支都是矫枉过正。

也许你可以说服你的客户采取另一种方法,即在提交标签和建立分支之间(很多人都担心)。

首先制作代码的本地副本,然后进行必要的更改(本地),并将结果作为新标记提交。如果新版本需要多次提交,您可以为新标记提供草稿名称 - 以确保没有人将此标记误认为已完成的版本 - 并且在完成所有提交后,重命名新标记为最终名称。 (我相信SVN允许重命名标签,虽然我从来没有这样做过。)

答案 5 :(得分:-1)

好的..如果你有聪明的同事制作标签,这些标签是严重臃肿的代码版本,充满了临时文件等等,那是绝对不必要的?!我认为删除垃圾并提交回标签是好的..只要有关于它的评论(评论将有时间戳,我认为对标签的任何更改也将有一个时间戳,所以很容易找到那个时候的评论)。当然,如果你是一家大公司,或者是一个专业的,结构合理的,红色的(我们就在这附近),那就是另一回事了。