Liste de tous les utilisateurs qui se sont engagés dans un référentiel SVN

10

Pour un référentiel SVN donné, je dois déterminer une liste de tous les utilisateurs qui ont jamais commis quoi que ce soit dans ce référentiel. Ce référentiel n'est pas le seul sur le serveur SVN, mais la liste doit être limitée à ce référentiel.

user12889
la source
Pouvez-vous analyser svn logles utilisateurs qui ont validé les modifications? Ou est-ce que le repo n'est pas une option?
physicsmichael
De plus, avez-vous du python? =)
physicsmichael

Réponses:

19

Pendant que je commençais à réécrire mon analyse python, j'ai réalisé une bien meilleure façon de faire ce que vous demandiez (j'ai analysé les noms et les dates de soumission pour calculer les ratios de soumission week-end / jour de semaine pour voir qui n'avait pas de vie!)

Consultez le dépôt, puis allez-y et exécutez:

svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq

Cela obtient une liste de toutes les modifications qui ont été validées, recherche les lignes qui commencent par la révision et number ( r[12341] | author | date-and-stuff...), imprime le troisième champ (author), trie les auteurs et supprime les doublons.

physiquemichael
la source
@ user12889: Votre accueil. Il m'est arrivé de voir la bonne question au bon moment.
physicsmichael
Si le champ de noms contient une valeur avec des espaces (dans mon cas j'avais commits de l'utilisateur (no author)) en ajoutant -F ' [|] 'à awk saisir le nom entier: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant
3

Forme légère de la réponse @DrummerB pour les noms d'utilisateur avec des espaces, combinée à la simplicité de @ vgm64

svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u

Blaireau paresseux
la source
Cela fonctionne aussi pour moi - alors que la version de @ DrummerB n'a rien
sorti
2

La réponse de vgm64 est bonne, mais elle ne fonctionne pas bien avec les noms qui contiennent des espaces. Je l'ai changé, donc ça fait:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
DrummerB
la source
1

Je sais que ce fil est ancien mais comme certains tutoriels pour convertir SVN en Git y sont liés, j'ajoute une commande qui générera un fichier Authors.txt:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > Authors.txt

S'il s'agit d'un SVN importé ou si vous tombez sur l' Not a working copyerreur, vous pouvez spécifier le chemin local vers le dossier SVN en ajoutant file:///tmp/svn-repoaprèssvn log -q

Albirew
la source