【问题标题】:Subversion: how to create a tag with folders at multiple revisionsSubversion:如何在多个修订版中创建带有文件夹的标签
【发布时间】:2010-10-11 20:24:07
【问题描述】:

我们有一个由单个构建作业组成的大型项目(Maven,通过 pom.xml,具有多个子文件夹等)。开发人员给了我们三个不同的修订号,并希望我们创建一个标签,我们可以提供给 (Hudson) 构建作业。

示例:
/ -- 在版本 X
/project1 -- 在版本 Y
/project2 -- 在 Z 版

我能够通过将整个分支同步到 rev X、“cd project1”并同步到 rev Y、然后“cd ..\project2”和同步到 rev Z、然后“cd ..”来创建这个标签并从当前目录创建标签。

我们希望能够从单个命令行创建标签(并且,无需使用 URL 将任何文件同步到我们的本地工作站)。这可能吗?我们尝试了几种变体,但似乎都没有奏效。

谢谢,

【问题讨论】:

    标签: svn tags revisions


    【解决方案1】:

    我看到两种方法可以满足您的要求

    顺便说一句,我会将您的“/”视为“主干”。因为否则创建标签没有意​​义;)

    从修订方法复制

    优势

    • 简单易懂

    缺点

    • 文档开销(这个标签里有什么?)
    • 选择可能的错误来源
    • 开销规模与项目数量成线性关系

    标记为稳定方法

    在您的后备箱中执行此步骤一次:

    检查您的主应用程序的人现在将获得您项目的最新版本当它们准备好发布时

    每当新版本准备就绪时,项目的开发团队都会执行这些步骤。他们可以决定使用修订号或在准备好后直接标记 HEAD:

    在发布/标签日:

    您也可以使用修订号。这里的问题是您的应用程序布局表明 project1 和 2 驻留在您的主应用程序“/”中内部。如果不是这种情况,标记和使用固定标记进行发布集成可能会非常顺利。 (“/”也会被子标记)

    现实世界的例子:

    svn propget svn:externals http://svn.silverstripe.com/open/phpinstaller/tags/2.4.2/

    优势

    • 通过 svn 历史记录和修订图更容易记录文档
    • 标记开销会在主要标记日扩展并保持不变

    缺点

    • 设置和理解更复杂(整个团队都必须这样做)

    标签只是修订的“符号链接”,因此两种情况都使用相同的原则。标记感觉更明确。 整个场景不是一个 1:1 的复制和它的工作建议,而是更多的通用模型。

    【讨论】:

      【解决方案2】:

      您始终可以手动执行svn copy 将内容复制到tags 下新创建的文件夹中。如果需要,您还可以编写一个简单的脚本来执行此操作给定三个修订号。

      如果复制目标是工作副本的路径(而不是存储库的 URL),您可以稍后一步提交所有内容。

      【讨论】:

        【解决方案3】:

        svnmerge 可以在这种情况下为您提供帮助。

        svnmerge.py wiki 说“通过挑选樱桃对发布分支的特定支持:命名和合并单个修订或修订范围。”

        我自己没有检查过,请尝试一下。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-10
          • 2010-10-21
          • 2011-08-05
          • 2012-06-25
          • 2023-02-01
          • 1970-01-01
          相关资源
          最近更新 更多