打印当前的Mercurial修订哈希?

ren*_*sch 120 hash mercurial revision

有没有更好的方法在Mercurial中提取当前版本哈希值

hg log -l1|grep changeset|cut -d: -f3

我的部分webapp部署脚本使用其唯一的修订哈希"标记"上传的应用程序tarball.

Ry4*_*ase 193

尝试:

hg id -i
Run Code Online (Sandbox Code Playgroud)

例:

$ hg id -i
adc56745e928
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要完整的哈希使用,人们会错过下面的解决方案:`hg --debug id -i`如果你想要模板支持使用`hg parent --template'{node}'`不要使用`hg log -l 1`,它是最新的存储库变更集,而不是当前的工作副本变更集. (22认同)
  • 建议不要在脚本中使用--debug,不太谨慎地控制输出,以及向后兼容性.使用模板.如果你想用log执行它,那么使用`.` dot作为修订版. (7认同)

小智 40

hg --debug id -i
Run Code Online (Sandbox Code Playgroud)

这将输出长哈希,如果有未提交的更改,则输出加号.


sha*_*awn 20

您可以在父命令中使用--template,我使用它来获取长哈希:

hg parent --template '{node}'
Run Code Online (Sandbox Code Playgroud)

  • 谁能告诉我们为什么不赞成养父母,而我们应该使用什么呢? (2认同)

rog*_*rog 14

总结答案及其响应,似乎这是打印当前版本的唯一(非简短形式)标识符的最佳方式:

hg log -l 1 --template '{node}\n' -r .
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 8

hg log -l 1 --template '{node|short}\n'
Run Code Online (Sandbox Code Playgroud)

请参阅文档,段落"模板的基础知识"和以下内容.

  • 这将打印最近拉出的变更集.我们的工作目录可以更新为较旧的变更集.要打印我们更新的变更集,请使用"hg id".唯一的问题是,"hg id"不支持模板,也没有打印长哈希的选项(除非有人知道如何做). (6认同)
  • 我几乎想要这个,但是用长哈希.别名`lid`到`log -l 1 --template'{node} \n'`实现了这一点 - 打印完整的修订版ID. (2认同)

She*_*III 5

最具体的非 DEPRECATED 命令,由于 的存在,--template如果需要简洁性,则只能打印修订信息(如问题所暗示的那样):

hg log -l 1 -b . -T '{rev}:{node|short}\n'

或者对于独特的长哈希形式:

hg log -l 1 -r . -T '{node}\n'

or -b .branch(.)分支名称的点)表示当前工作目录分支,并-r .表示当前工作目录修订版,其记录hg help revsets和中hg help revisions

请注意,如果存在未提交的合并.(点)仅显示工作组的两个父级中的第一个父级。