如何在Subversion中移动/重命名文件,其中包含@字符

sam*_*els 5 svn rename move character at-sign

来自SVN书:

感知读者可能在这一点上想知道peg修订版语法是否会导致工作副本路径或实际上有符号的URL出现问题.毕竟,svn如何知道news @ 11是否是我树中目录的名称,还是只是"新闻修订版11"的语法?值得庆幸的是,虽然svn将始终假设后者,但有一个简单的解决方法.您只需要在路径的末尾添加一个at符号,例如news @ 11 @.svn只关心参数中的最后一个符号,并且在符号之后省略文字peg修订说明符并不被认为是非法的.此解决方法甚至适用于以符号结尾的路径 - 您将使用filename @@来讨论名为filename @的文件.


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

所以这:

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

给了我那个错误:

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

还有这个:

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

适合我.

这对我有用:

svn info"C:\ SomeTests\my @ file.txt @"

更多这里:如何在Subversion托管文件名中转义@字符?


好的.但是当我想用@ -characters重命名或移动文件时.它提供了奇怪的结果:

有:

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 @"

我得到这个文件名:

我@ @ 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的@

它应该怎么做才能始终有效?无论@符号是在开头,中间还是在结尾?

(编辑:在我目前的问题上,角色总是在开头或第二位.)

sam*_*els 2

我曾尝试到处寻求支持。但现在我通过反复试验找到了解决方案。

只需运行这样的命令:

svn mv "C:\@File.txt@\" "C:\@NewFile.txt/"
Run Code Online (Sandbox Code Playgroud)

将 @ (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
Run Code Online (Sandbox Code Playgroud)

我希望它能帮您解决我遇到的麻烦。:)