2012-02-17 39 views
2

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

那么,有没有办法做到这一点?

+0

只是感兴趣:为什么不是latesttag + latesttagdistance? – 2012-02-17 15:07:33

+0

不知道,第一次看到它。现在将调查 – 2012-02-17 15:22:30

+1

取决于分支的各种分支被提交/拉取的顺序,分支上的提交顺序仍可能不同于存储库。 – 2012-02-17 17:55:33

回答

3

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

输出分支

+0

谢谢! U R天才:) – 2012-02-17 15:20:06

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 
在另一个

。请注意0​​和mmm变更集在两个存储库中是如何交换的。

只有当分支在两个存储库中的头都相同时,您才可以在每个存储库中讨论“分支是相同的”。如果是这样的话,那么,由懒惰建议,一个简单的

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

将给予相同的计数在这两个仓库。