如果我使用hg grep
,我会得到一个文件名和一个修订号。如何将这些信息位转换为我可以在其他命令中使用的变更集标识符?
答案 0 :(得分:5)
您可以使用hg id
或hg 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