我使用 PyCharm 重命名我项目的一个分支:我要求将我的分支 v4.0.0 重命名为 v5.0.0,但我不知道为什么,但 PyCham@在目标名称中添加了一个。我懂了 :
svn ls svn+ssh://svn@devhost/myproject/branches/
v2.0.0/
v3.0.0/
v5.0.0@/ <----
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试列出此分支中的文件,我会得到:
svn ls svn+ssh://svn@devhost/myproject/branches/v5.0.0@/
svn: warning: W160013: URL 'svn+ssh://svn@devhost/myproject/branches/v5.0.0' non-existent in revision 15667
svn: E200009: Could not list all targets because some targets don't exist
Run Code Online (Sandbox Code Playgroud)
我尝试不使用@,或者使用%40:我有相同的消息。我尝试了该-r <some revision>选项以查看它是否是修订问题,但没有帮助。我尝试再次使用 PyCharm 重命名v5.0.0@为v5.0.0:它告诉我无法重命名为自身。我尝试再次使用 PyCharm 重命名v5.0.0@为v4.0.0: 它再次v4.0.0@用 a重命名@。
有趣的是pycharm仍然可以在里面浏览 svn+ssh://svn@devhost/myproject/branches/v5.0.0@/
在我的终端上,svn ls不起作用,svn co还有 ! 我自己无法创建工作副本!
问题:如何将分支重命名v5.0.0@为v5.0.0?
如您所知@,subversion 中的意思是“挂钩和操作修订”——这是“意外”行为的原因。如果您需要在文件名中使用,则应将其加倍:
svn ls svn+ssh://svn@devhost/myproject/branches/v5.0.0@@/
# or remove the @ char
svn mv svn+ssh://svn@devhost/myproject/branches/v5.0.0{@@,}/
Run Code Online (Sandbox Code Playgroud)
请参阅SVNbook的Peg 和 Operative Revisions章节:
这种变通方法甚至适用于以 at 符号结尾的路径——您将
filename@@用来谈论名为filename@的文件。
它也适用于工作副本。