Svn 如何在Subversion中移动/重命名包含@characters的文件

Svn 如何在Subversion中移动/重命名包含@characters的文件,svn,character,rename,move,at-sign,Svn,Character,Rename,Move,At Sign,从: 敏锐的读者可能会想知道,此时peg修订语法是否会导致实际包含at符号的复制路径或URL的工作出现问题。毕竟,svn如何知道news@11是我的目录树中的目录名,还是只是“新闻第11版”的语法?谢天谢地,虽然svn总是假设后者,但有一个简单的解决方法您只需要在路径的末尾附加一个at符号,例如news@11@. svn只关心参数中的最后一个at符号,在该at符号之后省略一个literal-peg-revision说明符并不违法。此解决方法甚至适用于以at符号结尾的路径,您可以使用filenam

从:

敏锐的读者可能会想知道,此时peg修订语法是否会导致实际包含at符号的复制路径或URL的工作出现问题。毕竟,svn如何知道news@11是我的目录树中的目录名,还是只是“新闻第11版”的语法?谢天谢地,虽然svn总是假设后者,但有一个简单的解决方法您只需要在路径的末尾附加一个at符号,例如news@11@. svn只关心参数中的最后一个at符号,在该at符号之后省略一个literal-peg-revision说明符并不违法。此解决方法甚至适用于以at符号结尾的路径,您可以使用filename@来谈论名为filename@.


根据此描述,您只需要在路径中添加@符号

因此:

svn添加“C:\SomeTests\my@file.txt"

给我这个错误:

svn:E200009:'C:/SomeTests/my@file.txt“:此处不允许使用peg修订

这是:

svn添加“C:\SomeTests\my@file.txt@"

对我有用

这也适用于我:

svn信息“C:\SomeTests\my@file.txt@"

详情如下:


好的。 但是当我想重命名或移动带有@字符的文件时。它提供了奇怪的结果:

与:

svn mv“C:\SomeTests\test.txt”C:\SomeTests\my@file.txt"

我得到这个文件名:

C:\SomeTests\my@file.txt

与:

svn mv“C:\SomeTests\test.txt”C:\SomeTests\my@file.txt@"

我得到这个文件名:

my@file.txt@

与:

svn mv“C:\SomeTests\test.txt”“C:\SomeTests\@myfile.txt”

我得到这个文件名:

somefolder@myfile.txt

与:

svn mv“C:\SomeTests\test.txt”“C:\SomeTests\@myfile.txt”

我得到这个文件名:

@myfile.txt@

我该怎么做才能一直有效? 不管@符号是在开始,在中间还是在结尾?


(编辑:在我目前的版本中,角色总是放在开头或第二位。)

我已尝试在任何地方获得支持。 但现在我已经通过反复试验找到了解决办法

只需按如下方式运行命令:

svn mv "C:\@File.txt@\" "C:\@NewFile.txt/"
在源路径中添加@(At)和\(反斜杠)。 并将/(正斜杠)添加到目标路径。

它适用于我的每个选项:

@File to NoAtFile
@File to New@File
@File to @NewFile
NoAtFile to New@File
NoAtFile to @NewFile
_@File to NoAtFile
_@File to New@File
_@File to @NewFile


我希望这能帮你省去我的麻烦。:)

大问题;有疑问的答案。。。 这似乎是输入错误;可能不是从命令行复制的。我目前不在Windows上,因此无法在那里测试您的解决方案。 另外,在Linux上,我正在使用名称中带有和at符号的svn重命名一个目录

svn mv "WindowListGroup@bcdev.arch@gmail.com@" "AdvancedWindowList@bcdev.arch@gmail.com"
请注意,源代码末尾的一个@可以转义名称中的任意数量的@。目的地是照字面理解的

另见: