复制两次导致分支内的分支而不是错误

Sla*_*lav 5 svn version-control branch svn-copy

我有一个正常的 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: Path 'rel123' already exists”然而它并没有失败。

重复相同的svn copy命令实际上将复制/trunk/branches/rel123/trunk

添加:/DEV/Project/branches/rel123/trunk(从路径复制:/DEV/Project/trunk, Revision, 123)

所以现在,我最终得到/branches/rel123了包含主干外所有文件的文件,以及额外的文件夹“主干”( /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/项目/分支/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 / "

有人经历过吗?这是一个已知的问题?有什么解决方法可以防止这种“分支内的分支”错误?

Ben*_*Ben 1

这是一个特点。它可以让您执行以下操作:

svn move *.txt docs
Run Code Online (Sandbox Code Playgroud)

将所有 .txt 文件放入子目录中。

这反映了任何 shell 的“mv”或“move”或“cp”或“copy”或“xcopy”或“robocopy”命令的工作方式。