是否应保留存储库中的所有标记?

时间:2011-03-03 16:44:37

标签: svn git

我使用Subversion并坚持主干,标签和分支惯例。

我努力的使用模式松散地如下:

  1. 以trunk
  2. 开头
  3. 做一些工作
  4. 从主干发布标签
  5. 部署发布
  6. 从标记
  7. 创建功能分支
  8. 做好工作
  9. 将分支与主干合并
  10. 转到第3步。
  11. 鉴于这种模式,随着时间的推移,人们会构建相当多的标签。您是否长期保留这些标签,或者您的政策是删除那些不在生产中的标签?我的感觉是,最终"退休"它是有意义的(特别是在Subversion中)。旧标签,如果需要历史记录,依赖于主干和保留标签的历史,但正在使用哪些政策?

2 个答案:

答案 0 :(得分:1)

当然你可以删除它们 - 但是,列出它们时还有其他限制输出的方法。看看git-flow。您应该能够使用合并到主干中以显示已部署的内容而不依赖于标记。注意第一个父项在合并提交中的含义 - 这是您合并的一方。对于最近的历史检查/操作,标签有帮助。

记住SVN和Git之间的区别。 Git是基于快照的 - 不像SVN那样像URL。

答案 1 :(得分:1)

我的理念是,一旦代码被释放,我通常会锁定标签 - 即“冻结”分支。一旦分支中的源代码不再维护,我删除标签。因此,通常这意味着当标签的版本不再“在现场”时。

然而,这里有两个假设我应该说清楚 -

  1. 我通常按发布而不是按功能分支/标记。如果我为实验性功能创建分支,我通常会在成功合并到主干后删除分支。分支机构的工作大多只是因为我可以隔离对主干的更改,而我正在处理会让其他人感到不安的事情。
  2. 我的版本变化非常快,因为我是移动开发人员。因此,我很容易说“当发布不再在现场时”,因为一旦我发布新代码,它就会接管。对于未来几年支持代码的开发人员来说,要困难得多。
  3. 我想这只是“你希望在这个分支中支持代码多久?”