我想查询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
Run Code Online (Sandbox Code Playgroud)
我厌倦了以下运行:
svn log --xml PATH -v -r 21603:{2013-02-22} > XXX.xml
Run Code Online (Sandbox Code Playgroud)
并且返回相同的错误,除了修订版"21603",即使我可以看到它存在于Tortoise Log中.
我之前对许多功能分支运行完全相同的查询,从未遇到过这个问题.我尝试在后备箱上运行它作为测试被切断,我得到了相同类型的错误.只是在旁边,修订版指的是从未存在的分支根目录中的文件夹和文件(上面列出的错误消息中的XXX).对此有一些帮助将非常感激,因为我已经用尽所有可用资源来了解这里发生了什么.
首先,如果您想查询当前工作副本中不再存在的文件,您需要提供 SVN 存储库位置的完整路径,例如而http://svn/repo/trunk/src/myfile不是src/myfile.
其次,如果它被删除,仅使用它就不会显示-r <rev>- 您需要提供一个钉修订版,即标识 Subversion 在哪个时间点(即哪个修订版)应查找指定路径的修订版。然后,它将使用在指定路径的该修订版中找到的对象来执行所有请求的操作。
最后,如果操作修订范围(即您通过选项提供的内容-r)包含指定路径不再存在的修订,Subversion 将再次抱怨找不到该文件。
有关挂钩修订的更多信息,请查看此链接: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
Run Code Online (Sandbox Code Playgroud)
其中FULLPATH是完整存储库路径,REV是该路径所在的任何修订版本,LASTREV是文件/文件夹在存储库中存在的最后修订版本。