Lista wszystkich użytkowników, którzy zobowiązali się do repozytorium SVN

8

Dla danego repozytorium SVN muszę określić listę wszystkich użytkowników, którzy kiedykolwiek cokolwiek powierzyli temu repozytorium. To repozytorium nie jest jedynym na serwerze SVN, ale lista powinna być ograniczona do tego repozytorium.

user12889
źródło
Czy możesz analizować svn log dla użytkowników, którzy dokonali zmian? Czy sprawdzanie repo nie jest opcją?
physicsmichael
Czy masz python? =)
physicsmichael

Odpowiedzi:

16

Kiedy zacząłem przepisywać moje parsowanie pythona, zdałem sobie sprawę, że jest o wiele lepszy sposób na zrobienie tego, o co prosiłeś (przeanalizowałem nazwy i daty przesłania, aby obliczyć współczynniki składania weekendów / dni tygodnia, aby zobaczyć, kto nie ma życia!)

Sprawdź repo, a następnie przejdź do niego i wykonaj:

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

Dostaje listę wszystkich zatwierdzonych zmian, greps dla linii rozpoczynających się od wersji i numeru ( r[12341] | author | date-and-stuff... ), drukuje trzecie pole (autor), sortuje autorów i pozbywa się duplikatów.

physicsmichael
źródło
@ user12889: Twoje powitanie. Właśnie trafiłem na właściwe pytanie we właściwym czasie.
physicsmichael
W przypadku, gdy pole nazwy zawiera wartość ze spacjami (w moim przypadku miałem zatwierdzenia od użytkownika (no author) ) dodawanie -F ' [|] ' awk chwyta całą nazwę: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant
2

Odpowiedź vgm64 jest dobra, ale nie działa dobrze w przypadku nazw zawierających spacje. Zmieniłem to, więc to robi:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
DrummerB
źródło
1

Lekka forma odpowiedzi @DrummerB dla nazw użytkowników ze spacjami w połączeniu z prostotą @ vgm64

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

Lazy Badger
źródło