Subversion:如何在多个修订版本中创建包含文件夹的标记

时间:2010-10-11 20:24:07

标签: svn tags revisions

我们有一个大型项目,包含一个构建作业(Maven,通过pom.xml,带有多个子文件夹等)。开发人员给了我们三个不同的版本号,并希望我们创建一个可以提供(Hudson)构建作业的标记。

例:
/ - 在rev X
/ project1 - 在rev Y
/ project2 - 在rev Z

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

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

谢谢,

3 个答案:

答案 0 :(得分:2)

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

我会把你的“/”视为“后备箱”顺便说一下。因为它不会有意义创建标签;)

从修订方法中复制

优点

  • 易于理解

缺点

  • 文档开销(此标记中的内容是什么?)
  • 选择修订可能的错误来源
  • 与项目数量相关的架空规模

标记为稳定方法

在您的行李箱中执行此步骤:

检查您的主应用程序的任何人现在都会在准备时获取最新版本的项目

项目的开发团队在新版本准备就绪时执行这些步骤。他们可以决定使用修订版号,或者只是在准备就绪时标记HEAD:

发布/标签日

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

真实世界的例子:

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

优点

    通过svn历史记录和修订图,
  • 文档更容易一些
  • 标记开销比例并在主标签日保持不变

缺点

  • 设置更复杂&明白(整个团队必须)

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

答案 1 :(得分:0)

您可以随时手动svn copy将内容复制到tags下新创建的文件夹中。如果需要,您还可以在给定三个修订号的情况下编写一个简单的脚本。

如果复制目标是进入工作副本的路径(而不是存储库中的URL),则可以稍后在一个步骤中提交所有这些。

答案 2 :(得分:-1)

在这种情况下,

svnmerge 可以帮助你。

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

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