10

我正在尝试查询 SVN 日志以获取功能分支的 XML 输出,以使用 SlikSVN cmd 行包含两个日期之间的所有修订。我收到上面的错误"svn: E160013: File not found: revision 21602, path 'XXX'".当我浏览到它不存在的路径中的位置时,如果我通过 SVN 登录 tortoise 进行搜索,我找不到修订版 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)。非常感谢您对此提供一些帮助,因为我已经用尽所有可用资源来了解这里发生了什么。

4

1 回答 1

4

首先,如果要查询当前工作副本中不再存在的文件,则需要提供 SVN 存储库位置的完整路径,例如,http://svn/repo/trunk/src/myfile而不是src/myfile.

其次,如果它被删除了,它不会仅仅通过使用来显示-r <rev>- 您需要提供一个peg revision,即标识在什么时间点(即在哪个修订)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

whereFULLPATH是完整的存储库路径,REV是存在该路径的任何修订版,并且LASTREV是存储库中存在文件/文件夹的最后一个修订版。

于 2013-10-08T10:24:11.733 回答