4

是否可以使用带有参数的简单命令行来计算 Mercurial/Git 更改集的数量?

4

5 回答 5

13

对于 mercurial,只需检查 'tip' 的数字修订 id(定义为最高编号的修订):

$ hg id --num --rev tip
97
于 2013-05-21T18:29:02.733 回答
3

对于git

git log --pretty=oneline | wc -l

将为您提供当前分支上所有提交的计数,返回到原始提交。

要获取所有分支上所有提交的计数:

git log --pretty=oneline --all | wc -l
于 2013-05-21T15:40:48.983 回答
3

我会看看Mercurial 附带的流失扩展。它使您可以计算每个开发人员或每个时间段的变更集数量。它看起来像这样:

$ hg churn -s -c -f "%Y-%m"
2005-05    208 *****************************                                    
2005-06    341 ***********************************************
2005-07    271 *************************************
...

如果您只想知道与给定修订集匹配的变更集的数量,那么像其他人建议的那样使用hg log和:wc

$ hg log -r "user(geisler) and date('>2010')" --template x | wc -c
735
于 2013-05-21T20:05:09.490 回答
2

尽管这个问题已经很老了,但这是我的快速解决方案:

  hg log | grep changeset | wc -l

(当然,这只有在没有人在他们的提交消息中写入变更集时才起作用,等等。)


解释:

hg log以这种格式返回信息:

changeset:   232351:06d3053eg093
branch:      default/XXXXXX
bookmark:    hg
tag:         tip
user:        User
date:        Thu Feb 20 10:22:30 2020 +0100
summary:     XXXXXX: cleanup in test

只对其中一条线进行计算,然后对这些线进行计数,即可为您提供计数。

于 2020-02-22T12:40:02.923 回答
0

是的,这个问题真的很老了,但这里有一种更原生的方式来获取 git 的提交计数。我目前正在使用 git 2.15,但我不知道这已经存在了多久。

git rev-list --all --count

所有分支机构的总数,或

git rev-list HEAD --count

对于 HEAD 的祖先(或任何其他变更集)。

于 2018-08-17T16:53:58.263 回答