当我尝试执行这样的命令时(从命令行或 Perl 脚本 - 没关系):
svn revert "build\[email protected] /cdn-cgi/l/email-protection"
SVN 跳过此文件并输出:
Skipped 'build\myfile'
我尝试这样做:
svn revert "build\*.meta"
但它给出了相同的结果。
我可以从 GUI 恢复这些文件。我可以通过执行以下操作来恢复这些文件(但它恢复的程度比我想要的要多):
svn revert --recursive "build"
有解决方法吗?
Subversion 中文件名中的 @ 符号实际上具有特殊含义 - 固定修订号。引用颠覆书 http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html:
敏锐的读者此时可能想知道挂钩修订语法是否会导致工作副本路径或实际包含 at 符号的 URL 出现问题。毕竟,svn 如何知道 news@11 是我的树中的目录名称还是只是“新闻修订版 11”的语法?值得庆幸的是,虽然 svn 总是假设后者,但有一个简单的解决方法。您只需在路径末尾附加一个 at 符号,例如 news@11@。 svn 只关心参数中的最后一个 at 符号,并且在该 at 符号之后省略文字挂钩修订说明符并不被认为是非法的。此解决方法甚至适用于以 at 符号结尾的路径 — 您可以使用 filename@@ 来讨论名为 filename@ 的文件。
因此,您应该在脚本中的文件名后附加一个 @ 符号,如下所示:
svn revert "build\[email protected] /cdn-cgi/l/email-protection@"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)