Mercurial和Git的变更集总数

时间:2013-05-21 14:40:29

标签: git mercurial

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

5 个答案:

答案 0 :(得分:11)

对于mercurial,只需检查'tip'的数字版本ID(定义为编号最高的版本):

$ hg id --num --rev tip
97

答案 1 :(得分:3)

我会看看Mercurial附带的churn extension。它允许您计算每个开发人员或每个时间段的变更集数量。它看起来像这样:

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

如果您只想知道与给定revision set匹配的变更集的数量,请像其他人一样使用hg logwc

$ hg log -r "user(geisler) and date('>2010')" --template x | wc -c
735

答案 2 :(得分:2)

git

git log --pretty=oneline | wc -l

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

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

git log --pretty=oneline --all | wc -l

答案 3 :(得分:0)

是的,这个问题确实很老了,但是这是获取git提交计数的一种更加git-native的方法。我目前正在使用git 2.15,但我不知道它已经存在多久了。

git rev-list --all --count

针对所有分支机构总计,或

git rev-list HEAD --count

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

答案 4 :(得分:0)

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

  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

仅夹持其中一行,然后对行进行计数即可得出计数。