如何在PHP页面上显示hg存储库的当前工作副本版本
我在大多数项目中使用Mercurial,当我部署网站时,我只需在生产服务器上执行如何在PHP页面上显示hg存储库的当前工作副本版本,php,mercurial,Php,Mercurial,我在大多数项目中使用Mercurial,当我部署网站时,我只需在生产服务器上执行hg clone,然后从那里执行hg pull-u。我想做的是在我网站的页脚添加一个小片段,其中显示当前的修订号(十进制和十六进制)以及当前的分支。堆栈溢出和BitBucket都是我要寻找的东西的变体 我曾短暂地尝试解析exec('hg summary')的输出,但在想是否有更好的方法之前遇到了一些权限问题。是否有更好的方法,或者exec是我的最佳选择?您可以使用更新后挂钩将信息放入文件中。在站点的.hg/hgrc中
hg clone
,然后从那里执行hg pull-u
。我想做的是在我网站的页脚添加一个小片段,其中显示当前的修订号(十进制和十六进制)以及当前的分支。堆栈溢出和BitBucket都是我要寻找的东西的变体
我曾短暂地尝试解析
exec('hg summary')
的输出,但在想是否有更好的方法之前遇到了一些权限问题。是否有更好的方法,或者exec
是我的最佳选择?您可以使用更新后挂钩将信息放入文件中。在站点的.hg/hgrc
中,您可以放置如下内容:
[hooks]
post-update = hg id --rev > VERSION ; hg id --id >> VERSION
然后可以从php内部访问该文件。您仍然需要确保运行
hg pull-u
的用户信任hgrc文件,并且版本文件具有权限,以便Web服务器可以读取该文件。可以使用hg log-r之类的工具获得修订的良好描述--模板“v{latesttag}-{latesttagdistance}-{node | short}\n”
。这将返回类似“v1.0.0-2-5e51254a”的字符串(即,在标签1.0.0
之后提交2个,更改集id5e51254a
。回答不错-我喜欢。不依赖于exec
,很容易实现。谢谢!hg id-r
需要一个参数,我猜你的意思是-n
?对,你是@tommyd,尽管蒂姆·海尼根的形式更好。