如何从修订号中获取Mercurial变更集ID?

时间:2014-05-07 21:56:54

标签: mercurial

如果我使用hg grep,我会得到一个文件名和一个修订号。如何将这些信息位转换为我可以在其他命令中使用的变更集标识符?

3 个答案:

答案 0 :(得分:5)

您可以使用hg idhg log

$ hg id -r 100
526722d24ee5
$ hg log -r 100
changeset:   100:526722d24ee5
user:        jake@edge2.net
date:        Fri May 13 17:48:10 2005 -0700
summary:     reorganize code into classes

但请注意,您无需转换修订号。采用变更集ID的所有Mercurial命令也采用修订号。它们是可以互换的,如hg help revisions中所述。这意味着您可以在任何地方使用标记,分支名称,书签,修订号或变更集ID。

只有当您需要与其他人通信时才需要更改集ID。修订号是本地的,因此我的修订版100可能与您的修订版100不同。因此请在电子邮件,bugtrackers等中使用更改集ID。

答案 1 :(得分:4)

您可以使用id命令将(本地)修订号更改为哈希:

hg id -r {your rev #}

它采用-n开关的另一种方式:

hg id -n -r {your rev hash}

查看hg help id以获取所有乐趣!

答案 2 :(得分:0)

在某些情况下,变更集的末尾可能包含+,这表明(我认为)自上一次提交以来,工作目录已被修改。

即,它看起来可能像这样:

ed588733698a+

但是,在许多情况下,您不想在字符串中+中断任何类型的脚本。

您可以像这样获得简单的变更集:

hg id --template "{id|short}"

其输出如下:

ed588733698a