如何在PHP页面上显示hg存储库的当前工作副本版本

Jim*_*zuk 16 php mercurial

我在大多数项目中使用Mercurial,当我部署网站时,我只是hg clone在生产服务器hg pull -u上进行操作.我想做的是在我网站的页脚中添加一个小片段,显示当前的修订版号(十进制和十六进制)以及当前分支.Stack Overflow和BitBucket都可以改变我正在寻找的东西.

我简单地尝试解析输出exec('hg summary'),但是在想知道是否有更好的方法之前我遇到了几个权限问题.有更好的方法,还是exec我最好的选择?

Ry4*_*ase 21

您可以使用更新后挂钩将信息放入文件中.在网站上,.hg/hgrc您可以输入以下内容:

[hooks]
post-update = hg id --rev > VERSION ; hg id --id >> VERSION
Run Code Online (Sandbox Code Playgroud)

然后你可以从你的PHP内部访问该文件.您仍然需要确保运行的用户hg pull -u信任hgrc文件,并且VERSION文件具有权限,以便Web服务器可以读取它.

  • 可以使用诸如`hg log -r之类的东西来获得对修订的良好描述.--template"v {latesttag} - {latesttagdistance} - {node | short} \n"`.这将返回一个类似"v1.0.0-2-5e51254a"的字符串(即标记为"1.0.0"后的2个提交,其中变更集ID为"5e51254a". (7认同)