Wie viele Menschen wurden in einem Projekt beteiligt? Basierend auf Revision Control System
Frage
Wie wissen Sie, wie viele Entwickler an einem Projekt beteiligt waren, eine Revision Control System verwenden? Ein Freund von mir fand auf diese Weise die Antwort in git log zu sehen:
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
Gibt es eine einfache Möglichkeit, in git? Wie wäre es andere Revision Control Systeme wie Subversion, Basar oder Mercurial?
Lösung
git
Die shortlog
Befehl ist sehr nützlich, . Dies fasst die typische git-log
Ausgabe.
$ git shortlog -sn
119 tsaleh
113 Joe Ferris
70 Ryan McGeary
45 Tammer Saleh
45 Dan Croak
19 Matt Jankowski
...
Gehen Sie zur wc
die Anzahl der eindeutigen Benutzernamen, um zu sehen:
$ git shortlog -sn | wc -l
40
Andere Tipps
Für Mercurial, gibt es eine Erweiterung genau das zu tun. hg churn
hg churn
Arten von Linien geändert, wenn Sie changeset zählen möchten, verwenden hg churn -c
.
Für Subversion
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
Es gibt Statistiken Plugin für Bazaar verschiedene Informationen über Projektmitarbeiter zu bekommen:
Ich bin mir nicht bewusst, auf einfache Art und Weise für Mercurial entweder und eine gute Suche aller seiner Dokumentation nichts zu aufgedeckt. So, hier ist ein * nix-Befehl, ähnlich der Ihr Freund gefunden, für Mercurial:
hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l
übrigens, ich denke, es ist ein Fehler mit dem Befehl für git, sollte die zweite sort -u
sicher durch uniq ersetzt werden!
Eine einfachere git Version ist:
git log --pretty=tformat:%an | sort -u | wc -l
oder wenn Sie kümmern sich um eindeutige E-Mail-Adressen:
git log --pretty=tformat:%ae | sort -u | wc -l
Mercurial hat eine leistungsfähige Template-Sprache eingebaut (siehe hg help templates
). So können Sie eine Liste aller im Projekt erhalten, ohne dass die Abwanderungs Erweiterung ermöglicht:
hg log --template '{author}\n' | sort -u
Wenn die Leute ihre E-Mail-Adresse geändert haben (aber ansonsten behielten ihre Namen gleich), dann können Sie die author
Vorlage Schlüsselwort ein wenig verarbeiten:
hg log --template '{author|person}\n' | sort -u
Dann wc -l
entsprechend den obigen Befehle hinzuzufügen.