打印当前的Mercurial修订哈希?
在Mercurial中提取当前修订哈希是否有更好的方法?
hg log -l1|grep changeset|cut -d: -f3
?
我的webapp部署脚本的一部分使用其独特的修订哈希“上传”应用程序tarball。
尝试:
hg id -i
例:
$ hg id -i adc56745e928
hg --debug id -i
这将输出长散列,如果有未提交的更改,则加一个加号。
你可以使用 – 父命令模板,我用它来获得长哈希:
hg parent --template '{node}'
总结答案和答案,似乎这是打印当前版本的唯一 (而不是简写)标识符的最佳方式:
hg log -l 1 --template '{node}\n' -r .
hg log -l 1 --template '{node|short}\n'
请参阅文档 “模板的基础知识”和以下内容。
由于--template
的存在,最具体的非DEPRECATED命令可以只打印修订版本信息(如问题所暗示的那样):
hg log -l 1 -b . -T '{rev}:{node|short}\n'
或者为独特的散列forms:
hg log -l 1 -r . -T '{node}\n'
-b .
或branch(.)
(分支名称的点) 表示当前工作目录分支和-r .
表示当前的工作目录修订版,这在hg help revsets
和hg help revisions
。
注意如果有一个未提交的合并 , (点)只显示工作组的两个父母的第一个父母 。
正如别人指出的那样,不要使用log -l
。
使用hg log -r .
得到详细的信息,而不是使用输出有限的hg id
,它不支持模板。 你也可以创build一个小的别名,如here = log -r .
并hg here
使用hg here
。 如果你只想使用hg log -r . --template '{node}\n'
hg log -r . --template '{node}\n'
。