2013-03-13 4 views
2

Я пытаюсь получить количество строк в каждой ревизии определенного файла в репозитории subversion. Я знаю, что svn log filename.txt возвращает количество строк, измененных для каждой версии. Я хочу фактическое количество строк.Количество строк в каждой ревизии

+0

Я не могу придумать собственную команду SVN, которая бы сделала это, но вы можете использовать ['svn cat'] (http://svnbook.red-bean.com/en/1.7/svn.ref.svn .c.cat.html), чтобы получить содержимое файла при определенной ревизии, а затем grep it –

ответ

0

Вы можете использовать следующую функцию:

function revLineStats() { # <file or url> 
    local file=${1} 
    for rev in $(svn log "${file}" |awk '/^r[[:digit:]]+ \|/{print substr($1,2);}'|sort -g) 
    do 
    printf "%5i : %5i\n" ${rev} $(svn cat -r ${rev} "${file}" |wc -l) 
    done 
} 
1

svn diff -c myrev выводит диф введенную myrev правки. Это максимальная информация, которую вы можете получить с машины без применения эвристики.

Если вам нужно количество добавляемых строк, после процесса вывода с |egrep '^\+'|wc -l и т.д.

statsvn является SVN история анализ программного обеспечения, написанного на Java, которые вы можете использовать для вдохновения (или в качестве эталона при тестировании) ,

Смежные вопросы