在我的repo trunk中,我有一个目录unit-tests
,我想要保留我的发布标记。我一直在做的是将trunk复制到新标签,然后删除unit-tests
。 这是确定吗?感觉不对,因为标记每个版本需要两次修改。 有没有办法从svn副本中排除目录?
E.g。我有:
/trunk/unit-tests
/trunk/dir1
/trunk/file1
/trunk/file2
我想创建:
/tags/release_123/dir1
/tags/release_123/file1
/tags/release_123/file2
我通常使用Tortoise / Eclipse客户端,但如果需要,我可以使用它。
答案 0 :(得分:4)
你可以使用subversion提供的 svnmucc 程序(自SVN1.5起包含在windows build中) 这个小工具将收集多个svnactions到一个提交。但是你需要先创建目标文件夹。无法在单个事务中创建文件夹和复制内容:此处为示例:
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)来完成此任务,但我无法为此提供源代码..
答案 1 :(得分:2)
我认为你不能。
但是为什么还需要删除unit-test目录呢? 它不占用存储库中的额外空间,实际上,如果删除它会占用更多空间(因为额外的提交)。
如果您担心标签的签出时间太长/太大,您可以选择不签出单元测试目录。