Projetos de código aberto podem ficar grandes rapidamente, e o problema só piora à medida que você adiciona colaboradores. Git torna bastante fácil descobrir quem são seus committers mais comuns …
$ git shortlog -ns
121 Pieter van de Bruggen
21 Daniel Sauble
18 Randall Hansen
1 Matt Robinson
… Mas descobrir quem é o autor do maior número de linhas do seu projeto é um pouco mais complicado. Ainda é possível, no entanto.
$ cat git-authorship
git ls-files -z |
xargs -0 -n1 -E'n' -J {} git blame --date short -wCMcp '{}' |
perl -pe 's/^.*?((.*?) +d{4}-d{2}-d{2} +d+).*/1/' |
sort |
uniq -c |
sort -rn
$ bash git-authorship
1397 Pieter van de Bruggen
59 Matt Robinson
54 Daniel Sauble
É importante notar que esta invocação de xargs
é específica para BSD, xargs
por exemplo, no OS X; para UNIX xargs
, os sinalizadores serão um pouco diferentes. Também estou menos do que perfeitamente feliz em depender do Perl para isso, mas ei – sou pragmático.
Nenhuma dessas métricas é um bom indicador de produtividade; como qualquer outro artefato mensurável, eles podem ser jogados com bastante facilidade. Tenha muito cuidado ao usar essas métricas de forma punitiva, ou você receberá o que merece.