Список всех пользователей, которые добавили в SVN-репозиторий

10

Для данного SVN-репозитория мне нужно определить список всех пользователей, которые когда-либо фиксировали что-либо в этом репозитории. Этот репозиторий не единственный на сервере SVN, но список должен быть ограничен этим репозиторием.

user12889
источник
Можете ли вы проанализировать svn logпользователей, которые зафиксировали изменения? Или проверить репо не вариант?
физик Майкл
Кроме того, у вас есть питон? =)
физик Майкл

Ответы:

19

В то время как я начал переписывать мой синтаксический анализ python, я понял, что гораздо лучший способ сделать то, что вы просили (я проанализировал имена и даты представления, чтобы вычислить отношения представления в выходные / будние дни, чтобы увидеть, у кого нет жизни!)

Проверьте репо, затем перейдите к нему и выполните:

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

Это получает список всех изменений, которые были приняты, greps для строк, которые начинаются с revision и number ( r[12341] | author | date-and-stuff...), распечатывает третье поле (author), сортирует авторов и избавляется от дубликатов.

physicsmichael
источник
@ user12889: Добро пожаловать. Я просто случайно увидел правильный вопрос в нужное время.
физик Майкл
В случае , если поле имен содержит значение с пробелами (в моем случае я имел совершающие от пользователя (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 ничего не выводила
NickG
2

Ответ vgm64 хорош, но он плохо работает с именами, которые содержат пробелы. Я изменил это, так что это делает:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
DrummerB
источник
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

Albirew
источник