是否可以通过一个简单的带参数的命令行来计算Mercurial/Git变更集(提交)的数量?
olhwl3o21#
对于Mercurial,只需检查“tip”的数字版本ID(定义为最高编号的版本):
$ hg id --num --rev tip 97
yeotifhr2#
我想看看Mercurial附带的churn extension,它可以让你计算每个开发人员或每个时间段的变更集数量,看起来像这样:
$ hg churn -s -c -f "%Y-%m" 2005-05 208 ***************************** 2005-06 341 *********************************************** 2005-07 271 ************************************* ...
如果您只想知道与给定修订集匹配的变更集的数量,那么就像其他人建议的那样使用hg log和wc:
hg log
wc
$ hg log -r "user(geisler) and date('>2010')" --template x | wc -c 735
w7t8yxp53#
对于git:
git
git log --pretty=oneline | wc -l
将给予您提供当前分支上返回到原始提交的所有提交的计数。要获取所有分支上的所有提交的计数,请执行以下操作:
git log --pretty=oneline --all | wc -l
webghufk4#
下面是我的快速解决方案:
hg log | grep changeset | wc -l
(Of当然,这只有在没有人在他们的提交消息中写入变更集时才起作用,等等)说明: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
只抓一条线,然后数一数,就可以算出数。
r9f1avp55#
是的,这个问题确实很老了,但这里有一个更git原生的方法来获取git的提交次数。我目前使用的是git 2.15,但我不知道它已经存在多久了。
git rev-list --all --count
对于所有分支的总计,或
git rev-list HEAD --count
HEAD(或任何其他变更集)的祖系。
aiazj4mn6#
我使用下面的scriptlet来计算一个特定版本的hg祖先的数量:
hg log -r 'ancestors(.)' --template '1' \ | wc --bytes
在https://hg.pushbx.org/ecm/ldebug/rev/8b6e8611982a中添加以下消息:mak.sh:在修订ID字符串中包括祖先数量这个数字对于一个给定的变更集来说是固定的,无论它去哪里,也允许比较两个数字,假设它们在同一个分支上,彼此来判断哪个是“后来的”或更高级的,可以这么说。尽管这个命令来自https://hg.pushbx.org/ecm/ldebug/rev/6cbc8bdbb764这计算了历史记录中所有祖先变更集的数量,包括列出的变更集。(在本例中,点.代表当前工作目录的父目录,但是您可以使用其他修订说明。)这意味着,与数字本地修订ID不同,在同一个存储库中可能存在其他分支并不重要。
.
6条答案
按热度按时间olhwl3o21#
对于Mercurial,只需检查“tip”的数字版本ID(定义为最高编号的版本):
yeotifhr2#
我想看看Mercurial附带的churn extension,它可以让你计算每个开发人员或每个时间段的变更集数量,看起来像这样:
如果您只想知道与给定修订集匹配的变更集的数量,那么就像其他人建议的那样使用
hg log
和wc
:w7t8yxp53#
对于
git
:将给予您提供当前分支上返回到原始提交的所有提交的计数。
要获取所有分支上的所有提交的计数,请执行以下操作:
webghufk4#
下面是我的快速解决方案:
(Of当然,这只有在没有人在他们的提交消息中写入变更集时才起作用,等等)
说明:
hg log
会以下列格式传回信息:只抓一条线,然后数一数,就可以算出数。
r9f1avp55#
是的,这个问题确实很老了,但这里有一个更git原生的方法来获取git的提交次数。我目前使用的是git 2.15,但我不知道它已经存在多久了。
对于所有分支的总计,或
HEAD(或任何其他变更集)的祖系。
aiazj4mn6#
我使用下面的scriptlet来计算一个特定版本的hg祖先的数量:
在https://hg.pushbx.org/ecm/ldebug/rev/8b6e8611982a中添加以下消息:
mak.sh:在修订ID字符串中包括祖先数量
这个数字对于一个给定的变更集来说是固定的,无论它去哪里,也允许比较两个数字,假设它们在同一个分支上,彼此来判断哪个是“后来的”或更高级的,可以这么说。
尽管这个命令来自https://hg.pushbx.org/ecm/ldebug/rev/6cbc8bdbb764
这计算了历史记录中所有祖先变更集的数量,包括列出的变更集。(在本例中,点
.
代表当前工作目录的父目录,但是您可以使用其他修订说明。)这意味着,与数字本地修订ID不同,在同一个存储库中可能存在其他分支并不重要。