Daftar semua pengguna yang berkomitmen pada repositori SVN

10

Untuk repositori SVN yang diberikan, saya perlu menentukan daftar semua pengguna yang pernah melakukan sesuatu pada repositori itu. Repositori ini bukan satu-satunya di server SVN, tetapi daftar harus dibatasi untuk repositori itu.

pengguna12889
sumber
Bisakah Anda menguraikan svn loguntuk pengguna yang telah melakukan perubahan? Atau memeriksa repo bukan pilihan?
physicsmichael
Juga, apakah Anda punya python? =)
physicsmichael

Jawaban:

19

Ketika saya mulai menulis ulang python parsing saya, saya menyadari cara yang jauh lebih baik untuk melakukan apa yang Anda minta (saya parsing nama dan tanggal pengajuan untuk menghitung rasio pengajuan akhir pekan / hari kerja untuk melihat siapa yang tidak punya kehidupan!)

Lihat repo, lalu buka dan jalankan:

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

Itu mendapat daftar semua perubahan yang telah dikomit, greps untuk baris yang dimulai dengan revisi dan angka ( r[12341] | author | date-and-stuff...), mencetak bidang ketiga (penulis), mengurutkan penulis dan menghilangkan duplikat.

fisika michael
sumber
@ user12889: Selamat datang. Saya kebetulan melihat pertanyaan yang tepat di waktu yang tepat.
physicsmichael
Dalam hal bidang nama berisi nilai dengan spasi (dalam kasus saya saya harus komit dari pengguna (no author)) menambahkan -F ' [|] 'untuk awk akan ambil seluruh nama: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Quinn Comendant
3

Bentuk ringan dari jawaban @DrummerB untuk nama pengguna dengan spasi, dikombinasikan dengan kesederhanaan @ vgm64

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

Malas Badger
sumber
Ini juga berfungsi untuk saya - sedangkan versi @ DrummerB tidak menghasilkan apa pun
NickG
2

Jawaban vgm64 baik, tetapi tidak bekerja dengan baik dengan nama yang mengandung spasi. Saya mengubahnya, jadi:

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

Saya tahu utas ini sudah lama tetapi karena beberapa tutorial untuk mengubah SVN ke Git terhubung di sana, saya menambahkan perintah yang akan menghasilkan file Authors.txt:

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

Jika ini adalah SVN yang diimpor, atau jika Anda menemukan Not a working copykesalahan, Anda dapat menentukan lintasan lokal ke folder SVN dengan menambahkan file:///tmp/svn-reposetelahsvn log -q

Albirew
sumber