我怎样才能find我的工作版本在mercurial

在一个mercurial repo中,我可以运行hg up {revision}来改变我的工作目录的修订版本,但是我可以运行什么命令来发现我正在查看的修订版本?

这个命令:

 hg parent 

除了hg parents ,您还可以使用hg summary来获取有关您当前状态的最重要摘要信息。 它看起来像这样:

 % hg summary parent: 13051:120eccaaa522 tip encoding: fix typo in variable name branch: default commit: 2 unknown (clean) update: (current) mq: 20 unapplied 

并告诉我一目了然,我在修订13051,我在一个干净的工作副本的默认分支(虽然有2个未跟踪的文件)。 这是我的存储库中的最新版本,所以更新不会做任何事情。 最后,我有20个未应用的MQ补丁。

hg identify (或简称hg id )将打印父哈希的(缩短的12个字符的标识符),如果工作副本中有任何未提交的修改,则会显示+

要获得完整的哈希值,可以使用hg identify --debug代替。

另一个选项是启用graphlog扩展 ,然后运行hg glog 。 你会看到这样的输出(记住我使用模板来改变输出):

 o changeset: 200:c8c281cf0a6d |\ branch: craig-aspinall | | tag: tip | | parent: 199:1a692f3b9134 | | parent: 187:2d0e0ed9d31c | | user: Craig Aspinall | | date: Tue Nov 23 21:36:30 2010 +1000 | | summary: Merged latest changes | | | o changeset: 199:1a692f3b9134 | | branch: craig-aspinall | | parent: 123:1dc90c9b7ede | | user: Craig Aspinall | | date: Tue Nov 23 21:35:22 2010 +1000 | | summary: Final solutions to L04 | | | | @ changeset: 198:78b488c2607d <==== This is where I am currently. | | |\ branch: OJ | | | | parent: 119:70ec3d9e4d3a | | | | parent: 197:44bac809d37d | | | | user: OJ Reeves | | | | date: Tue Nov 23 20:19:07 2010 +1000 | | | | summary: Merged with the mainline | | | | | | | o changeset: 197:44bac809d37d | | | | user: Tony Morris | | | | date: Tue Nov 23 18:40:03 2010 +1000 | | | | summary: Started parallel anagrams | | | | | | | o changeset: 196:92241b51970b | | | | user: Tony Morris | | | | date: Tue Nov 23 17:52:32 2010 +1000 | | | | summary: Started parallel anagrams | | | | 

使用@符号的节点/修订版就是你所在的位置。

由于--template的存在,最具体的非DEPRECATED命令可以只打印修订版本信息(如问题所暗示的那样):

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

要么:

hg log -l 1 -b . -T '{rev}\n'

要么:

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

或者为独特的散列forms:

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

-b .branch(.) (分支名称的点) 表示当前工作目录分支和-r . 表示当前的工作目录修订版,这在hg help revsetshg help revisions

注意如果有一个未提交的合并 , (点)只显示工作组的两个父母的第一个父母 。

这也将有所帮助,

 hg log -v -r `hg id -i`