Список усіх користувачів, які взяли участь у сховищі SVN


10

Для даного сховища SVN мені потрібно визначити список усіх користувачів, які коли-небудь зробили щось із цього сховища. Цей сховище не є єдиним на сервері SVN, але список повинен бути обмежений цим сховищем.


Чи можете ви проаналізувати svn logкористувачів, які внесли зміни? Або перевірка репо не є варіантом?
physicsmichael

Також у вас є пітон? =)
Physicsmichael

Відповіді:


19

Поки я почав переписувати свій розбір пітона, я зрозумів набагато кращий спосіб зробити те, про що ви просили (я розібрав імена та дати подання, щоб обчислити коефіцієнти подання на вихідні / вихідний день, щоб побачити, у кого немає життя!)

Перевірте репо, потім перейдіть до нього та виконайте:

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

Це отримує перелік усіх змін, які були здійснені, грепки для рядків, що починаються з перегляду та числа ( r[12341] | author | date-and-stuff...), друкує третє поле (автора), сортує авторів та позбавляється від дублікатів.


@ user12889: Ласкаво просимо. Щойно я випадково побачив правильне запитання в потрібний час.
physicsmichael

У разі , якщо поле імен містить значення з пробілами (в моєму випадку я мав вчиняють від користувача (no author)) , додавши -F ' [|] 'до AWK буде захоплювати все ім'я: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq.
Квінн Комендант

3

Легка форма відповіді @DrummerB для імен користувачів з пробілами в поєднанні з простотою @ vgm64

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


Це також працює для мене - тоді як версія @ DrummerB нічого не
виводила

2

Відповідь vgm64 хороша, але вона не працює добре з іменами, які містять пробіли. Я змінив його, і це робить:

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

1

Я знаю, що цей потік старий, але оскільки деякі підручники для перетворення SVN в Git посилаються там, я додаю команду, яка генерує файл Authors.txt:

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

Якщо це імпортний SVN або якщо ви натрапили на Not a working copyпомилку, ви можете вказати локальний шлях до папки SVN, додавши file:///tmp/svn-repoпісляsvn log -q

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.