Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP页面上显示hg存储库的当前工作副本版本_Php_Mercurial - Fatal编程技术网

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

如何在PHP页面上显示hg存储库的当前工作副本版本,php,mercurial,Php,Mercurial,我在大多数项目中使用Mercurial,当我部署网站时,我只需在生产服务器上执行hg clone,然后从那里执行hg pull-u。我想做的是在我网站的页脚添加一个小片段,其中显示当前的修订号(十进制和十六进制)以及当前的分支。堆栈溢出和BitBucket都是我要寻找的东西的变体 我曾短暂地尝试解析exec('hg summary')的输出,但在想是否有更好的方法之前遇到了一些权限问题。是否有更好的方法,或者exec是我的最佳选择?您可以使用更新后挂钩将信息放入文件中。在站点的.hg/hgrc中

我在大多数项目中使用Mercurial,当我部署网站时,我只需在生产服务器上执行
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个,更改集id
5e51254a
。回答不错-我喜欢。不依赖于
exec
,很容易实现。谢谢!
hg id-r
需要一个参数,我猜你的意思是
-n
?对,你是@tommyd,尽管蒂姆·海尼根的形式更好。