【发布时间】:2015-02-03 09:42:47
【问题描述】:
来自SVN book:
敏锐的读者此时可能想知道 peg 修订语法是否会导致工作副本路径或实际上包含 at 符号的 URL 出现问题。毕竟,svn 是如何知道 news@11 是我树中目录的名称,还是只是“新闻的第 11 版”的语法?值得庆幸的是,虽然 svn 总是假设后者,但有一个简单的解决方法。 您只需在路径末尾附加一个 at 符号,例如 news@11@。 svn 只关心参数中的最后一个 at 符号,并且在 at 符号之后省略文字 peg 修订说明符并不被认为是非法的。这种解决方法甚至适用于以 at 符号结尾的路径——您可以使用 filename@@ 来讨论名为 filename@ 的文件。
根据这个描述,你只需要在路径中加一个@符号即可。
所以这个:
svn add "C:\SomeTests\my@file.txt"
给我这个错误:
svn: E200009: 'C:/SomeTests/my@file.txt': 此处不允许进行 peg 修订
还有这个:
svn add "C:\SomeTests\my@file.txt@"
为我工作。
这对我也有用:
svn info "C:\SomeTests\my@file.txt@"
更多:How to escape @ characters in Subversion managed file names?
好的,好的。 但是当我想用@-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@"
我得到这个文件名:
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 character rename move at-sign