【问题标题】:Tracking an existing tag in SVN跟踪 SVN 中的现有标签
【发布时间】:2013-01-16 03:21:07
【问题描述】:

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

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

【问题讨论】:

    标签: svn tagging


    【解决方案1】:

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

    你可以:

    1. 每次发布​​时忽略约定并重新创建 PROD 标记。 IE
      • 第一次创建 PROD svn 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 发布的代码
      • 第一次创建 PROD svn 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)

    【讨论】:

    • 我认为,外部是最好的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    相关资源
    最近更新 更多