对于许多 Subversion 操作,将“@”符号附加到文件或 URL 参数的末尾允许您定位该文件的特定版本。例如,“svn info test.txt@1234”将提供有关 test.txt 的信息,因为它存在于修订版 1234 中。
但是,当文件名包含 @ 时,Subversion 会错误地将其解释为修订说明符:
svn info ‘test@.txt’ svn: 语法错误解析修订版 ‘.txt’
我尝试过双引号和单引号以及使用“/”、“\”和“@”转义。如何告诉 Subversion 将 @ 符号视为文件名的一部分?
来自SVN 书(强调添加):
敏锐的读者此时可能想知道 peg 修订语法是否会导致工作副本路径或实际上具有 at 符号的 URL 出现问题。毕竟, svn 是如何知道news@11我的树中的目录名称还是“ 新闻 第 11 版”的语法?值得庆幸的是,虽然 svn 总是假设后者,但有一个简单的解决方法。 您只需在路径末尾附加一个 at 符号 ,例如news@11@. svn 只关心参数中的最后一个 at 符号,并且在 at 符号之后省略文字 peg 修订说明符并不被认为是非法的。此解决方法甚至适用于以 at 符号结尾的路径——您将使用filename@@谈论一个名为 filename@ 的文件。
news@11
news@11@
filename@@