有多少人参与了一个项目?根据修订控制系统
题
你怎么知道有多少开发者参与的一个项目使用的版本控制系统?我的一个朋友发现这种方式寻找的答案件的提交:
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
是有一个简单的方式在git?怎么样的其他修订控制系统,如颠复、市或刺客?
解决方案
GIT中
shortlog
命令非常有用。这总结了典型的 git-log
输出。
$ git shortlog -sn
119 tsaleh
113 Joe Ferris
70 Ryan McGeary
45 Tammer Saleh
45 Dan Croak
19 Matt Jankowski
...
传递给 wc
以查看唯一用户名的数量:
$ git shortlog -sn | wc -l
40
其他提示
对于mercurial,有一个扩展可以做到这一点: hg churn
hg churn
按行更改排序,如果您想要更改集计数,请使用 hg churn -c
。
对于颠覆
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
Bazaar有stats插件可以获得有关项目贡献者的不同信息:
我也不知道Mercurial的直接方式,并且对其所有文档的良好搜索也没有透露任何内容。所以,这是一个* nix命令,类似于你朋友找到的那个Mercurial:
hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l
顺便说一句,我认为git的命令有错误,第二个 sort -u
肯定会被uniq取代! 更简单的git版本是:
git log --pretty=tformat:%an | sort -u | wc -l
或者如果您关心唯一的电子邮件地址:
git log --pretty=tformat:%ae | sort -u | wc -l
善变的有一个强大的模板语言内(见 hg help templates
).这样你就可以得到一个列表中的所有人在该项目没有能够使流失延伸:
hg log --template '{author}\n' | sort -u
如果有人改变了他们的电子邮件地址(但否则保持他们的姓名相同),然后你可以处理 author
模板的关键词有点:
hg log --template '{author|person}\n' | sort -u
然后添加 wc -l
作为适当的上述命令。
不隶属于 StackOverflow