在我的仓库主干中,有一个目录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客户端,但是如果需要的话,我可以使用它。

最佳答案

您可以通过使用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)完成此任务,但是我无法为此提供源代码。

08-03 14:57