Для данного SVN-репозитория мне нужно определить список всех пользователей, которые когда-либо фиксировали что-либо в этом репозитории. Этот репозиторий не единственный на сервере SVN, но список должен быть ограничен этим репозиторием.
user-accounts
svn
repository
user12889
источник
источник
svn log
пользователей, которые зафиксировали изменения? Или проверить репо не вариант?Ответы:
В то время как я начал переписывать мой синтаксический анализ python, я понял, что гораздо лучший способ сделать то, что вы просили (я проанализировал имена и даты представления, чтобы вычислить отношения представления в выходные / будние дни, чтобы увидеть, у кого нет жизни!)
Проверьте репо, затем перейдите к нему и выполните:
svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq
Это получает список всех изменений, которые были приняты, greps для строк, которые начинаются с revision и number (
r[12341] | author | date-and-stuff...
), распечатывает третье поле (author), сортирует авторов и избавляется от дубликатов.источник
(no author)
) , добавив-F ' [|] '
к AWK будет захватывать все имя:svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq
.Легкая форма ответа @DrummerB для имен пользователей с пробелами в сочетании с простотой @ vgm64
svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u
источник
Ответ vgm64 хорош, но он плохо работает с именами, которые содержат пробелы. Я изменил это, так что это делает:
источник
Я знаю, что эта ветка старая, но поскольку там есть ссылки на некоторые учебные пособия по конвертации SVN в Git, я добавляю команду, которая сгенерирует файл Authors.txt:
Если это импортированный SVN или вы наткнулись на
Not a working copy
ошибку, вы можете указать локальный путь к папке SVN, добавивfile:///tmp/svn-repo
послеsvn log -q
источник