我有一个正常的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
下。一切都好。
新增:/ DEV / Project / branches / rel123(从路径复制:/ DEV / Project / trunk,Revision,123)
如果有人意外地执行再次分支,我期望它“svn:E160020:路径'rel123'已经存在”。 然而它不会失败。
重复相同的svn copy
命令实际上会将/trunk
复制到/branches/rel123/trunk
新增:/ DEV / Project / branches / rel123 / trunk(从路径复制:/ 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 / ”
有人遇到过这个吗?这是一个已知的问题?任何防止这种“分支内部分支”错误的变通办法?
答案 0 :(得分:1)
这是一个功能。它可以让你做以下事情:
svn move *.txt docs
将所有.txt文件放入子目录。
这反映了任何shell的“mv”或“move”或“cp”或“copy”或“xcopy”或“robocopy”命令的工作方式。