1

目前我们正在使用一个流程,将代码库标记为生产代码,CVS然后进行正常开发。可以提交到主干和新标签,但产品标签在生产版本之前不能更改,此时产品版本的标签成为新的产品标签。因此,每当需要生产代码时,只需签出 prod 标签即可。prod 标签基本上就像一个更传统的开发过程中的主干头。

我们现在正在迁移SVN,计划是保持当前的方法。我想知道为特定代码库维护生产标签的最佳/标准方法SVN是什么?是否可以创建一个在新的生产版本之前永远不会更改的标签,其中生产代码将合并到标签中?拥有生产标签历史的能力也很好。

4

1 回答 1

2

对你来说坏消息:你必须改变习惯。标签是 Subversion(通常)不可变的,即关系 URL-OF-TAG <-> Revision 在项目的生命周期内(不得)更改。

你可以:

  1. 每次发布时忽略约定并重新创建 PROD 标签。IE
    • 第一次创建 PRODsvn cp REPO/TRUNK@R1 REPO/tags/PROD
    • 在下一个版本中svn rm REPO/tags/PROD & svn cp REPO/TRUNK@RN REPO/tags/PROD
  2. 使用主干外部 repo 中的任何路径作为特殊用途的分支(可变子树):“MergeTo Only”并合并到此 PROD 发布的代码
    • 首次创建 PRODsvn cp REPO/TRUNK@R1 REPO/PROD... REPO/branches/PROD
    • 在每个下一个版本中将主干(或版本分支的版本标签或 HEAD)合并到 PROD
  3. 使用外部
    • 第一次创建 PROD:在某个地方添加(第 2 页的注释适用)“虚拟文件夹”使用 svn:externals 到存储库中的某个点(树和历史)(我将 PROD 添加到分支,将使用 propset在树干根上)svn propset svn:externals . branches/PROD REPO/TRUNK@R1 & svn ci &svn up
    • 在每个下一个版本中:更改 PROD 的外部资源定义svn propedit svn:externals .(再次在主干的根目录中)并将(交互式,在文本编辑器中)替换REPO/TRUNK@R1为新路径(为了便于自动化propedit,可以替换为propdel+ propset
于 2013-01-16T04:44:04.760 回答