Mercurial等同于git的HEAD~1

Key*_*eyo 6 git mercurial

在git中,相对于repo中的最新提交识别提交非常方便HEAD~1.

我已经搜索过,但在mercurial中找不到相应的等价物.我觉得mercurials版本号很烦人.

ton*_*nfa 10

Mercurial的revset功能非常强大(并且比git修订版规范语法更加神秘):请参阅hg help revsets(或在线访问:http://www.selenic.com/mercurial/hg.1.html#specifying-revision-sets) .

请参阅此处获取谓词列表(我不知道为什么它们不会显示在在线文档中):http://hg.intevation.org/mercurial/crew/file/e597ef52a7c2/mercurial/revset.py#l811

在你的情况下,将是:p1(tip).


rai*_*ain 7

正确答案是.^.~1.

tip指向进入存储库的最新修订版,而不是您当前的修订版.包含tip在其中的任何答案都是不正确的.

Mercurial的revset语法在此处详细说明:https://www.mercurial-scm.org/repo/hg/help/revsets

x^n:x的第n个父,n == 0,1或2.对于n == 0,x; 对于n == 1,x中每个变更集的第一个父项; 对于n == 2,x中变更集的第二个父项.

x~n:x的第n个第一个祖先; "x~0"是x; "x~3"是"x ^^^".对于n <0,x的第n个明确的后代.

x^:相当于"x ^ 1",x中每个变更集的第一个父项.


bba*_*a42 6

有一个mercurial扩展添加git之类的命令.
具体命令是 hg log -pr .^1.

有关其他信息,请参阅检查hg中的变更集

编辑:使用.^1,不是tip^1.如下所述,tip在整个仓库中提供最新的提交,这可能不是您想要的.该.是在意义上更接近Git的HEAD.(另请参阅:在Mercurial中将点指定为修订版)

  • 如今,默认支持相对转速集语法。了解“p1()”将给出当前工作目录的父目录也很有用,而“tip”将给出整个存储库的最新提交(可能位于不同的分支上) (2认同)