我想提出一个PHP工具连接到存储库,下载提交的名单,并在本地存储它们。 然而,由于某些库是巨大的,抓在漫长的等待时间,并有可能超时/错误日志的结果的可能性,我想下载使用每一个异步请求的提交信息。
所以,我在修订历史有一个起点和终点,我可以抓住这样的所有日志:
svn log -r <from_revision>:<to_revision> <REPO_URL>
......我将可能与该是如此巨大,这将需要很长时间才能下载,很长一段时间和大量资源来解析,并长时间存储的XML文件中结束。
如果我知道的起点和终点,我可以创造一个为()循环由一个抢一个版本:
svn log -r <revision> ...
但是,因为我不知道是哪个具体的修订存在指定的路径,我会收到一个错误。 我可以忽略更新过程中错误的应用程序,但它是一个讨厌的黑客,其将发布请求,并等待反正响应 - 这是不好的。
所以,我需要这样的:
- “给我的版本号的列表,这条道路”,OR:
- “给我的版本号的列表,这条道路,之间
这样,我就能够进行有效修正的阵列存储库路径和一个让他们一个。
所有的建议都欢迎,在此先感谢。
我认为最好的方法是做以下svn log -l 100 0:{$newest} .\
将恢复第100个日志对于给定的目录或文件。 然后读取最后一个版本号返回,然后请求下一个100 svn log -l 100 {$last_ret_log}:{$newest} .\
这样,你得到每个请求99个新的日志条目,但你不会得到所有的人。
如果你有你的Subversion服务器上访问资源库树,那么你可以使用svnlook history
来获得版本号的列表。
更多细节,可以发现http://svnbook.red-bean.com/en/1.1/re49.html 。
我刚才一直试图获得类似的结果。 我只是希望所有的特定分支的版本号。
我发现下面是相当有帮助的。
svn log <svn_server_path> | grep "^r[0-9]\+ | " | cut -d' ' -f1 | cut -c2- > revisions.csv
这让我在不同的行中的所有版本号的文件。
希望你或别人会发现它的帮助。
我们的回购有超过25000的修订,它需要几秒钟生成此文件。
你可能想看看svn list
。 所以,你的目的:
$ svn list --verbose file:///var/svn/repos
16 sally 28361 Jan 16 23:18 README.txt
27 sally 0 Jan 18 15:27 INSTALL
24 harry Jan 18 11:27 examples/
这列出的任何文件的最后(头)的修订。
svn log url -l limitNumber - r fromReversion:toReversion
如果ü要找到下一个较旧的(小)例如逆转(版本)
svn log url -l 4 -r someVersion:1
or
svn log url -l 4 -r 99: 3
fromReversion比toReversion更大当U想寻找下一个新的(大)回复(版本)
svn log url -l 4 -r someVersion:head
or
svn log url -l 4 -r 3:99
fromReversion lower than toReversion