我正在尝试查询SVN日志以获取功能分支的XML输出,以包含使用SlikSVN cmd行的2个日期之间的所有修订。我收到错误"svn: E160013: File not found: revision 21602, path 'XXX'".
当我浏览路径中的位置时它不存在,如果我搜索SVN登录龟,我找不到修订版21602.这是查询:
svn log --xml PATH -v -r {2012-09-25}:{2013-02-22} > XXX.xml
我厌倦了以下运行:
svn log --xml PATH -v -r 21603:{2013-02-22} > XXX.xml
并且返回相同的错误,除了修订版“21603”,即使我可以看到它存在于Tortoise Log中。
我之前对许多功能分支运行了完全相同的查询,但从未遇到此问题。我尝试在后备箱上运行它作为测试被切断,我得到了相同类型的错误。 只是在旁边,修订版指的是从未存在的分支根目录中的文件夹和文件(上面列出的错误消息中的XXX)。对此有一些帮助将非常感激,因为我已经用尽所有可用的资源来了解这里发生了什么。
答案 0 :(得分:4)
首先,如果要查询当前工作副本中不存在的文件,则需要提供SVN存储库位置的完整路径,例如: http://svn/repo/trunk/src/myfile
代替src/myfile
。
其次,如果它被删除,它将不会仅仅使用-r <rev>
显示 - 您需要提供 peg revision ,即一个标识在哪个时间点的修订版(即在哪个版本)Subversion应该寻找指定的路径。然后,它将使用它在指定路径的该修订中找到的对象来执行所有请求的操作。
最后,如果操作修订版本范围(即您使用-r
选项提供的内容)包含不再存在指定路径的修订版,Subversion将再次抱怨找不到该文件。
有关peg修订的更多信息,请查看以下链接:http://svnbook.red-bean.com/en/1.6/svn.advanced.pegrevs.html
如有查询,请尝试
svn log --xml FULLPATH@REV -v -r {2012-09-25}:LASTREV > XXX.xml
其中FULLPATH
是完整存储库路径,REV
是存在路径的任何修订版,LASTREV
是存储库中存在文件/文件夹的最后一个版本。< / p>