【发布时间】:2009-10-27 21:02:00
【问题描述】:
我正在制作一个连接到存储库、下载提交列表并将它们存储在本地的 PHP 工具。但是,由于某些存储库可能很大并且获取它们的日志会导致等待时间长并且可能出现超时/错误,我想使用异步请求下载每个提交消息。
所以,我在修订历史中有一个起点和终点,我可以像这样抓取所有日志:
svn log -r <from_revision>:<to_revision> <REPO_URL>
...我最终可能会得到一个非常庞大的 XML 文件,以至于需要很长时间才能下载、需要很长时间和大量的资源来解析以及需要很长时间来存储。
如果我知道起点和终点,我可以创建一个 for() 循环来逐个抓取修订:
svn log -r <revision> ...
但是,由于我不知道给定路径存在哪些特定修订,因此我会收到错误消息。我可以让应用程序在更新期间忽略该错误,但这是一个讨厌的 hack,它会发布请求并等待响应 - 这一点都不好。
所以,我需要这样的东西:
- “给我这个路径的修订号列表”,或者:
- "给我这个路径的修订号列表,在和之间
这样我就可以为存储库路径创建一组有效的修订版本并一个接一个地获取它们。
欢迎所有建议,在此先感谢。
【问题讨论】:
-
您是否考虑过使用 SVN 绑定而不是调用 SVN CLI 可执行文件? IIRC,它们已经存在于 PHP 中。这将是一个更加程序化且不易出错的界面。
标签: svn revision subdirectory