时间:2010-12-02 00:41:23

标签: mercurial

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

6 个答案:

答案 0 :(得分:70)

答案 1 :(得分:23)

除了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补丁。

答案 2 :(得分:15)

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

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

答案 3 :(得分:4)

另一种选择是启用graphlog extension,然后运行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
| | | |

带有@符号的节点/修订版就是您所在的位置。

答案 4 :(得分:1)

由于--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'

或者对于唯一的长形式哈希:

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

-b .branch(.)(分支名称为点)means the current working directory branch-r .表示当前工作目录修订版,hg help revsets位于{{1} }和documented

请注意,如果有hg help revisions,则.(点)仅显示工作组中两位家长的uncommitted merge

答案 5 :(得分:1)

这也很有用,

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