Как получить общее количество строк вклада каждого пользователя для SVN-репозитория

svn ls -R | egrep -v -e "\/$" | tr '\n' '\0' | xargs -0 svn blame | awk '{print $2}' | sort | uniq -c | sort -nr


Данная команда используется для получения общего количества строк вклада каждого пользователя в svn-репозиторий.
Более подробно, команда выполняет следующие действия:

— svn ls -r: на основе опции -r, команда svn ls позволяет получить список файлов и каталогов в svn-репозитории.
— egrep -v -e «\/$»: данная команда используется для фильтрации результатов предыдущей команды. Она исключает строки, оканчивающиеся символом «/», что помогает исключить каталоги из списка файлов.
— tr ‘\n’ ‘\0’: команда tr заменяет символ новой строки («\n») на нулевой символ («\0»). Это необходимо для того, чтобы все строки, полученные на предыдущем шаге, были объединены в одну строку, разделенную нулевым символом.
— xargs -0 svn blame: команда xargs позволяет передавать результаты предыдущей команды в качестве аргументов для команды svn blame. Команда svn blame используется для отслеживания автора каждой строки в заданных файлах.
— awk ‘{print $2}’: команда awk используется для извлечения только второго столбца (т.е. автор строки) из результатов команды svn blame.
— sort: команда sort сортирует авторов строк в алфавитном порядке.
— uniq -c: команда uniq позволяет удалить дублирующиеся строки и подсчитать количество каждой уникальной строки (-c). В данном случае, это количество строк (вклад) для каждого пользователя.
— sort -nr: команда sort сортирует уникальные строки в убывающем порядке (-nr), что позволяет вывести результаты по количеству строк вклада каждого пользователя начиная с наибольшего количества.

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

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *