2011-05-15 98 views
16

我在大多数项目中使用Mercurial,并且在部署网站时,我只需在生产服务器上执行hg clone,然后在那里执行。我想要做的是在我的网站页脚中添加一小段代码,它显示当前版本号(十进制和十六进制)以及当前分支。堆栈溢出和BitBucket都做了我正在寻找的变化。如何在PHP页面上显示hg存储库的当前工作副本版本

我简单地尝试了解析exec('hg summary')的输出,但是我想知道是否有更好的方法来解决这个问题。有没有更好的方法,或者我的最佳选择是exec

回答

21

您可以使用post-update挂钩将信息放入文件中。在该网站的.hg/hgrc你会把这样的事情:

[hooks] 
post-update = hg id --rev > VERSION ; hg id --id >> VERSION 

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

+7

修改的一个很好的描述可以通过像'hg log -r。 - 模板“v {latesttag} - {latesttagdistance} - {node | short} \ n”'。这会返回一个像“v1.0.0-2-5e51254a”这样的字符串(也就是说,在标签为'1.0.0'后提交了变更集ID为'5e51254a'的字符串。 – 2011-05-15 02:26:40

+0

好的答案 - 我喜欢它。不依赖'exec',easy足够执行。谢谢! – 2011-05-15 03:50:03

+0

'hg id -r'期待一个参数,我想你的意思是'-n'? – 2012-03-13 23:49:49

相关问题