Quantas pessoas estavam envolvidas em um projeto? Com base no sistema de controle de Revisão
Pergunta
Como você sabe quantos desenvolvedores estavam envolvidos em um projeto usando um Sistema de Controle de Revisão? Um amigo meu encontrou esta maneira de olhar para cima a resposta em git log:
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
Existe uma maneira simples em git? Como cerca de outras Revisão do Sistema de Controle como Subversion, Bazaar ou Mercurial?
Solução
git
O href="http://www.kernel.org/pub/software/scm/git/docs/git-shortlog.html" rel="noreferrer"> shortlog
comando é muito útil . Isso resume a saída git-log
típico.
$ git shortlog -sn
119 tsaleh
113 Joe Ferris
70 Ryan McGeary
45 Tammer Saleh
45 Dan Croak
19 Matt Jankowski
...
Pass para wc
para ver o número de nomes de usuários únicos:
$ git shortlog -sn | wc -l
40
Outras dicas
Para mercurial, há uma extensão para fazer exatamente isso:. hg churn
tipos hg churn
por linha-mudou, se você quiser changeset contagem, o uso hg churn -c
.
Para subversão
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
Não há estatísticas plugin para o Bazaar para obter informações diferentes sobre colaboradores do projeto:
Eu não estou ciente de uma maneira simples para Mercurial quer e uma boa pesquisa de toda a sua documentação não revelou nada muito. Então, aqui está um comando * nix, semelhante ao seu amigo encontrado, por Mercurial:
hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l
BTW, eu acho que há um erro com o comando de git, o segundo sort -u
deve certamente ser substituído por uniq!
A versão mais simples git é:
git log --pretty=tformat:%an | sort -u | wc -l
ou se você se preocupa com endereços de e-mail exclusivo:
git log --pretty=tformat:%ae | sort -u | wc -l
Mercurial tem uma poderosa linguagem de modelo built-in (veja hg help templates
). Então você pode obter uma lista de todas as pessoas no projeto sem habilitar a extensão churn:
hg log --template '{author}\n' | sort -u
Se as pessoas mudaram seu endereço de e-mail (mas por outro lado manteve o seu nome o mesmo), então você pode processar o modelo author
palavra-chave um pouco:
hg log --template '{author|person}\n' | sort -u
Em seguida, adicione wc -l
conforme apropriado para os comandos acima.