Combien de personnes ont été impliquées dans un projet? Basé sur le système de contrôle de révision

StackOverflow https://stackoverflow.com/questions/1813649

Question

Comment savez-vous combien de développeurs ont participé à un projet utilisant un système de contrôle de révision? Un de mes amis a trouvé cette méthode pour rechercher la réponse dans le journal git:

git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l

Existe-t-il un moyen simple d'utiliser git? Qu'en est-il des autres systèmes de contrôle des révisions comme Subversion, Bazaar ou Mercurial?

Autres conseils

Pour Mercurial, il existe une extension permettant de faire exactement cela: hg churn .

hg churn trie par ligne modifiée, si vous souhaitez un nombre de modifications, utilisez hg churn -c .

Pour la subversion

svn log -q svn://path/to/repo | cut -f 3 -d " "  | sort -u

Il existe un plugin de statistiques permettant à Bazaar d'obtenir des informations différentes sur les contributeurs du projet:

https://launchpad.net/bzr-stats/

Je ne connais pas non plus de solution simple pour Mercurial et une bonne recherche dans toute sa documentation n'a rien révélé non plus. Voici donc une commande * nix, similaire à celle trouvée par votre ami, pour Mercurial:

hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l

BTW, je pense qu'il y a une erreur avec la commande pour git, le deuxième sort -u devrait sûrement être remplacé par uniq!

Une version simplifiée de git est:

git log --pretty=tformat:%an | sort -u | wc -l

ou si vous vous souciez des adresses électroniques uniques:

git log --pretty=tformat:%ae | sort -u | wc -l

Mercurial intègre un puissant langage de modèles (voir Modèles d’aide ). Vous pouvez ainsi obtenir une liste de toutes les personnes du projet sans activer l'extension de désabonnement:

hg log --template '{author}\n' | sort -u

Si des personnes ont modifié leur adresse électronique (tout en conservant le même nom), vous pouvez traiter un peu le mot clé du modèle author :

hg log --template '{author|person}\n' | sort -u

Ajoutez ensuite wc -l en fonction des commandes ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top