我有一个正常的 SVN 结构:
http://server/DEV/Project/trunk
http://server/DEV/Project/branches
然后我使用以下命令进行分支:
svn copy -m "message""http://server/DEV/Project/trunk@123""http://server/DEV/Project/branches/rel123"
一切正常,/trunk@123
的内容被放置在新的分支路径/branches/rel123
下。一切都好。
Added : /DEV/Project/branches/rel123 (Copy from path: /DEV/Project/trunk, Revision, 123)
问题:
如果有人意外地再次执行分支,我预计它会失败,并显示“svn: E160020: Path 'rel123'已经存在”>。 但是它不会失败。
重复相同的svn copy
命令实际上将/trunk
复制到/branches/rel123/trunk
Added : /DEV/Project/branches/rel123/trunk (Copy from path: /DEV/Project/trunk, Revision, 123)
现在,我最终得到 /branches/rel123
,其中包含主干中的所有文件,以及额外文件夹“trunk”(/branches/rel123/trunk
),也包含主干上的所有相同文件。
我尝试过:
我尝试终止路径以强制 SVN 理解这是绝对目录名称,但没有成功(我在下面的示例中删除了 http://server
部分)
svn copy -m "message" "/DEV/Project/trunk@123/" "/DEV/Project/branches/rel123"
svn copy -m "message" "/DEV/Project/trunk/@123" "/DEV/Project/branches/rel123"
svn copy -m "message" "/DEV/Project/trunk@123" "/DEV/Project/branches/rel123/"
svn copy -m "message" "/DEV/Project/trunk@123/" "/DEV/Project/branches/rel123/"
svn copy -m "message" "/DEV/Project/trunk/@123" "/DEV/Project/branches/rel123/"
有人遇到过这种情况吗?这是一个已知的问题?有什么解决方法可以防止这种“分支内分支”错误吗?
最佳答案
这是一个功能。它可以让您执行以下操作:
svn move *.txt docs
将所有 .txt 文件放入子目录中。
这反射(reflect)了任何 shell 的“mv”或“move”或“cp”或“copy”或“xcopy”或“robocopy”命令的工作方式。
关于svn - 复制两次会导致分支内分支而不是错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410934/