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


10

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


Можете ли вы проанализировать 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), сортирует авторов и избавляется от дубликатов.


@ 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

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.