SVN:是否可以获得给定路径的修订号列表?

标签 svn revision subdirectory

我正在制作一个连接到存储库的 PHP 工具,下载提交列表并将它们存储在本地。但是,由于某些存储库可能很大并且在长时间等待和可能的超时/错误中抓取它们的日志结果,我想使用异步请求下载每个提交消息。

所以,我在修订历史中有一个起点和终点,我可以像这样获取所有日志:
svn log -r <from_revision>:<to_revision> <REPO_URL>
...我最终可能会得到一个非常大的 XML 文件,它需要很长时间才能下载,需要很长时间和大量资源来解析,并且需要很长时间来存储。

如果我知道起点和终点,我可以创建一个 for() 循环来一一抓取修订:
svn log -r <revision> ...
但是,由于我不知道给定路径存在哪些特定修订,因此我会收到错误消息。我可以让应用程序在更新期间忽略该错误,但这是一个令人讨厌的黑客攻击,它会发布请求并等待响应 - 这一点都不好。

所以,我需要这样的东西:

  • “给我这个路径的修订号列表”,或者:
  • “给我此路径的修订号列表,介于
  • 之间

    这样我就可以对存储库路径进行一系列有效的修订,并逐一获取它们。

    欢迎所有建议,提前致谢。

    最佳答案

    我认为您最好的选择是执行以下操作 svn log -l 100 0:{$newest} .\这将检索给定目录或文件的前 100 个日志。然后读取返回的最后一个修订号,然后请求下一个 100 svn log -l 100 {$last_ret_log}:{$newest} .\
    这样,每个请求都会获得 99 个新的日志条目,但不会全部获得。

    关于SVN:是否可以获得给定路径的修订号列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633649/

    相关文章:

    SVN存储库配置

    svn - 为什么合并一系列修订版与单独合并它们不同?

    java - Folder Watcher 在 JDK 7 中如何工作?

    mysql - 如何创建 perl 脚本来访问许多主机并更新或执行自定义作业

    visual-studio-2008 - 从 USB Key 使用 Subversion

    Android sdk Tools, Revision 12 不更新

    mysql - 行级修订查询 MySQL

    android - Android Studio src/res/layout子文件夹错误

    c# - EnvDTE 遍历解决方案中的子文件夹

    svn - Trac - Windows - trac 项目是如何组织的?