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.


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.


@ 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


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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.