
Для заданного репозитория SVN мне нужно определить список всех пользователей, которые когда-либо что-либо коммитили в этот репозиторий. Этот репозиторий не единственный на сервере SVN, но список должен быть ограничен этим репозиторием.
решение1
Пока я переписывал свой синтаксический анализ Python, я придумал гораздо лучший способ сделать то, о чем вы просили (я проанализировал имена и даты отправки, чтобы вычислить соотношение отправки в выходные и будние дни, чтобы увидеть, у кого нет жизни!)
Проверьте репозиторий, затем перейдите в него и выполните:
svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq
Это возвращает список всех внесенных изменений, ищет строки, начинающиеся с ревизии и номера ( r[12341] | author | date-and-stuff...
), выводит третье поле (автор), сортирует авторов и удаляет дубликаты.
решение2
Облегченная форма ответа @DrummerB для имен пользователей с пробелами в сочетании с простотой @vgm64
svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u
решение3
Ответ vgm64 хорош, но он не работает с именами, содержащими пробелы. Я изменил его, и теперь он работает:
svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
решение4
Версия ответа @Albirew для Win Powershell:
svn log -q | Select-String "^r" | ForEach-Object {
$parts = $_ -split '\|'
$author = $parts[1].Trim()
"$author = $author <$author>"
} | Sort-Object -Unique > Authors.txt