我正在尝试查询SVN日志,以获得功能分支的XML输出,从而使用SlikSVN命令行包含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",尽管我可以在乌龟日志中看到它存在。
我以前对许多功能分支运行过完全相同的查询,从未遇到过这个问题。我试着在主干上运行它,但作为测试,它被切断了,我得到了相同类型的错误。顺便说一句,修订引用了分支根目录中从未存在过的文件夹和文件(上面列出的错误消息中的XXX(。如果能在这方面提供一些帮助,我将不胜感激,因为我已经用尽了所有可用的资源来了解这里发生了什么。
首先,如果您想查询当前工作副本中不再存在的文件,则需要提供SVN存储库位置的完整路径,例如http://svn/repo/trunk/src/myfile
而不是src/myfile
。
其次,如果它被删除了,它将不会通过使用-r <rev>
来显示-您需要提供一个peg修订,即一个确定子版本应该在什么时间点(即在哪个修订(查找指定路径的修订。然后,它将使用在指定路径的修订中找到的对象来执行所有请求的操作。
最后,如果操作修订版范围(即您提供的-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
其中,FULLPATH
是完整的存储库路径,REV
是路径所在的任何修订,LASTREV
是存储库中存在文件/文件夹的最后修订。