我们有一个大型项目,包含一个构建作业(Maven,通过pom.xml,带有多个子文件夹等)。开发人员给了我们三个不同的版本号,并希望我们创建一个可以提供(Hudson)构建作业的标记。
例:
/ - 在rev X
/ project1 - 在rev Y
/ project2 - 在rev Z
我能够通过将整个分支同步到rev X,然后“cd project1”并同步到rev Y,然后“cd .. \ project2”并同步到rev Z,然后“cd ..”来创建此标记。并从当前目录创建标记。
我们希望能够从单个命令行创建标记(并且无需通过使用URL将任何文件同步到本地工作站)。这可能吗?我们尝试了几种变体,但似乎都没有。
谢谢,
肯
答案 0 :(得分:2)
我看到两种方法可以满足您的要求
我会把你的“/”视为“后备箱”顺便说一下。因为它不会有意义创建标签;)
从修订方法中复制
优点
缺点
标记为稳定方法
在您的行李箱中执行此步骤:
添加以下两行:
svn propset svn:externals -F externals。
检查您的主应用程序的任何人现在都会在准备时获取最新版本的项目
。项目的开发团队在新版本准备就绪时执行这些步骤。他们可以决定使用修订版号,或者只是在准备就绪时标记HEAD:
svn copy http://myrepos/project1/@y http://myrepos/1.0/project1/tags/to-be-released
:
您也可以使用修订号。这里的问题是您的应用程序布局表明project1和2位于内部您的主应用程序“/”。如果不是这种情况标记并使用固定标记进行发布 - 集成可以非常顺利。 (“/”也会被标记为子标记)
真实世界的例子:
svn propget svn:externals http://svn.silverstripe.com/open/phpinstaller/tags/2.4.2/
优点
缺点
标签只是修改的“符号链接”,因此两种方案都使用相同的原则。然而,标记感觉更明确。 整个场景不是1:1的复制和工作建议,而是更多的通用模型。
答案 1 :(得分:0)
您可以随时手动svn copy
将内容复制到tags
下新创建的文件夹中。如果需要,您还可以在给定三个修订号的情况下编写一个简单的脚本。
如果复制目标是进入工作副本的路径(而不是存储库中的URL),则可以稍后在一个步骤中提交所有这些。
答案 2 :(得分:-1)