Как найти количество строк, измененных между версиями CVS?
Я провел большую часть дня, внося какие-то хозяйственные изменения в кодовую базу одного из наших проектов (заменяя все System.out.println()
звонки с log4j).
Мне любопытно, сколько строк кода я обновил с помощью этого набора изменений.
Есть ли в любом случае с cvs diff
или другая команда, чтобы получить точный счетчик того, сколько строк изменилось?
я пробовал
cvs diff -b -B -R
чтобы получить все изменения в рабочем каталоге (и рекурсивно в подкаталогах), но для каждого измененного файла он также выводит информацию о файле / версии, что делает бесполезным просто считать строки вывода.
Есть идеи?
4 ответа
Отфильтруйте лишние строки из вывода diff, а затем посчитайте их.
Например, grep только строки, начинающиеся с <или>
cvs diff -b -B -R | egrep '^<|>' | wc -l
Утилита diffstat - хороший инструмент для получения простых метрик из выходных данных cvs, svn или других diff-файлов.
Как насчет того, чтобы убедиться, что вы изменили все экземпляры примерно так:
find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \
xargs egrep -e 'System\.out\.println[(][)]' | wc -l
это должно дать вам ноль.
Затем, заменяя регулярное выражение во втором egrep на 'log4j', вы должны получить wc -l, возвращающий количество строк, которые вы изменили.
НТН.
веселит,
обкрадывать