我有一个 PHP 脚本,它通过检查 SVN 下的目录,特别是与 pattern 匹配的目录来自动生成项目发布历史^/*/tags/*
。
例如
^/myproject/tags/v1-00
^/myproject/tags/v1-01
^/myproject/tags/v1-02
……等等。
除其他外,该脚本解析以下输出svn info
:
[tomalak@cat ~]$ svn info https://localhost/svn/myproject/tags/v8-11/
Path: v8-11
URL: https://localhost/svn/myproject/tags/v8-11
Repository Root: https://localhost/svn
Repository UUID: ***
Revision: 15198
Node Kind: directory
Last Changed Author: ***
Last Changed Rev: 15192
Last Changed Date: 2013-06-17 12:31:52 +0100 (Mon, 17 Jun 2013)
为了获得标签创建的SVN版本和日期。
这真的很好......直到有人提交到标签上。它发生了。较新版本的 TortoiseSVN 会警告您,您可以创建预提交挂钩以尝试物理禁止提交到标签1,但无论如何我都想处理这种情况。
我们被告知“ Last Changed Rev
”和“ Last Changed Date
”;我们可以在没有太多工作的情况下(理想情况下没有第二次svn
调用),而是要求“ First Changed Rev
”和“ First Changed Date
”吗?
相关: “ SVN:如何获得文件的第一个修订版? ”接近了,但svn info
如果可能的话,我特别想用单个调用来做到这一点。(“ How to get the early checkout-able revision info from subversion? ”也很接近,但最终没用。)
1实际上,在不禁止创建初始标签的情况下,我在执行此操作时遇到了麻烦,尽管这是另一天的故事……