5

在我的 repo 主干中,我有一个目录unit-tests,我想把它放在我的发布标签之外。我一直在做的是将主干复制到一个新标签,然后删除unit-tests. 吗?感觉不对,因为每个版本都需要进行两次修订。有没有办法从 svn 副本中排除目录?

例如我有:

/trunk/unit-tests
/trunk/dir1
/trunk/file1
/trunk/file2

我想创建:

/tags/release_123/dir1
/tags/release_123/file1
/tags/release_123/file2

我通常使用 Tortoise/Eclipse 客户端,但如果需要,我可以使用它。

4

2 回答 2

4

您可以通过使用 subversion 提供的svnmucc程序来完成此操作(自 SVN1.5 起包含在 Windows 构建中)这个小工具将多个 svnaction 收集到一个提交中。但是您需要先创建目标文件夹。不可能在单个事务中创建文件夹并在其中复制内容:这里有一个示例:

svn mkdir -m "creating a tag" http://your.serv.er/svn/repo/tags/release_123
svnmucc cp HEAD http://your.serv.er/svn/repo/trunk/dir1 http://your.serv.er/svn/repo/tags/release_123 \
cp HEAD http://your.serv.er/svn/repo/trunk/file1 http://your.serv.er/svn/repo/tags/release_123 \
cp HEAD http://your.serv.er/svn/repo/trunk/file2 http://your.serv.er/svn/repo/tags/release_123 -m "creating tag Part II" 

您也可以使用 perl/python/ruby 绑定或 svnkit(java) 来完成此任务,但我无法为此提供源代码。

于 2009-07-03T16:36:30.913 回答
2

我不认为你可以。

但是为什么你仍然需要删除单元测试目录呢?它不占用存储库中的额外空间,实际上,如果您删除它,它会占用更多空间(因为额外的提交)。

如果您担心签出标记需要太长时间/变得太大,您可以选择不签出单元测试目录。

于 2009-07-02T04:32:38.917 回答