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.


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.


@ 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


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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.