Liste aller Benutzer, die sich für ein SVN-Repository entschieden haben

10

Für ein bestimmtes SVN-Repository muss eine Liste aller Benutzer erstellt werden, die jemals etwas für dieses Repository festgelegt haben. Dieses Repository ist nicht das einzige auf dem SVN-Server, aber die Liste sollte auf dieses Repository beschränkt sein.

user12889
quelle
Können Sie svn logdie Benutzer analysieren , die Änderungen festgeschrieben haben? Oder ist das Auschecken des Repos keine Option?
Physikmichael
Hast du auch Python? =)
Physikmichael

Antworten:

19

Während ich anfing, mein Python-Parsing neu zu schreiben, erkannte ich einen viel besseren Weg, um das zu tun, was Sie gefragt haben (ich analysierte Namen und Übermittlungsdaten, um die Übermittlungsverhältnisse zwischen Wochenende und Wochentag zu berechnen, um zu sehen, wer kein Leben hatte!).

Schauen Sie sich das Repo an, gehen Sie dorthin und führen Sie Folgendes aus:

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

Dadurch wird eine Liste aller festgeschriebenen Änderungen angezeigt, nach den Zeilen gesucht, die mit der Revision und Nummer beginnen ( r[12341] | author | date-and-stuff...), das dritte Feld (Autor) ausgedruckt, die Autoren sortiert und Duplikate entfernt.

Physikmichael
quelle
@ user12889: Gern geschehen. Ich habe gerade die richtige Frage zur richtigen Zeit gesehen.
Physikmichael
Falls das Namensfeld einen Wert mit Leerzeichen enthält (in meinem Fall hatte ich Commits vom Benutzer (no author)), wird durch Hinzufügen von -F ' [|] 'zu awk der gesamte Name erfasst : svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant
3

Leichte Form der @ DrummerB-Antwort für Benutzernamen mit Leerzeichen, kombiniert mit der Einfachheit von @ vgm64

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

Fauler Dachs
quelle
Dies funktioniert auch für mich - während @ DrummerBs Version nichts ausgegeben hat
NickG
2

Die Antwort von vgm64 ist gut, funktioniert aber nicht gut mit Namen, die Leerzeichen enthalten. Ich habe es geändert, also:

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

Ich weiß, dass dieser Thread alt ist, aber da dort einige Tutorials zum Konvertieren von SVN in Git verlinkt sind, füge ich einen Befehl hinzu, der eine Authors.txt-Datei generiert:

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

Wenn es sich um eine importierte SVN handelt oder wenn Sie auf den Not a working copyFehler stoßen , können Sie den lokalen Pfad zum SVN-Ordner angeben, indem Sie file:///tmp/svn-reponach hinzufügensvn log -q

Albirew
quelle