如何在分支中获取mercurial commit序列号

时间:2012-02-17 13:17:28

标签: mercurial branch version commit

我想检索提交订单号,只计算特定分支(主)的提交。 由于每个机器/ repo上的分支“master”是相同的,因此这将允许我:  1.无论存储库是什么,都具有相同的编号  2.在版本字符串中使用此编号。

那么,有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

例如

hg log -b master --template "." | wc -m

输出当前分支中的变更集数量

答案 1 :(得分:2)

你的想法不会奏效,即使你只限于一个命名的分支。正如Ry4an所提到的,问题是该分支上的变更集的顺序由hg pushhg pull的顺序决定。所以你很容易就会遇到这样的情况:

@    branch: master, changeset: 5:f5b6808f2f04, summary: merge
|\
| o  branch: master, changeset: 4:2b7bdcc98a88, summary: mmm
| |
o |  branch: master, changeset: 3:6b60342a01a6, summary: mm
|/
o  branch: master, changeset: 2:f39fa3fa1aaf, summary: m
|
o  branch: master, changeset: 1:4dd5e8ae6481, summary: create master
|
o  branch: default, changeset: 0:68b4eb1ca123, summary: a

在一个存储库中,但

@    branch: master, changeset: 5:f5b6808f2f04, summary: merge
|\
| o  branch: master, changeset: 4:6b60342a01a6, summary: mm
| |
o |  branch: master, changeset: 3:2b7bdcc98a88, summary: mmm
|/
o  branch: master, changeset: 2:f39fa3fa1aaf, summary: m
|
o  branch: master, changeset: 1:4dd5e8ae6481, summary: create master
|
o  branch: default, changeset: 0:68b4eb1ca123, summary: a
另一个。请注意两个存储库中mmmmm变更集的交换方式。

只有当分支在两个存储库中具有相同的头时,您才可以在每个存储库中讨论“分支是相同的”。如果是这种情况,那么,正如Lazy所建议的那样,一个简单的

hg log -b master --template "." | wc -m

将在两个存储库中给出相同的计数。