Как определить статистику изменений между ревизиями - PullRequest
5 голосов
/ 16 ноября 2008

Учитывая 2 ревизии файла, я хочу знать, сколько строк было добавлено / изменено / удалено. Я хочу иметь эту информацию для всего хранилища тысяч файлов. Пожалуйста, укажите мне сценарий или инструмент, так как я в целом svn новичок

Я работаю на Windows

Пример вывода

Файл ~ NewRevision ~ OldRevision ~ Добавлена ​​~ Модифицированный ~ Удаляется

file1.c ~ # 11 ~ # 10 ~ 1 ~ 2 ~ 0

file1.c ~ # 2 ~ # 1 ~ 2 ~ 2 ~ 0

Ответы [ 3 ]

4 голосов
/ 16 ноября 2008

В Subversion встроен очень удобный инструмент сравнения. Я бы использовал такую ​​команду, как:

svn diff -rOldRevision:NewRevision URL

где URL - это URL вашего репозитория (например, http://www.mycode.org/svn/trunk).). Это не отформатирует вывод diff в искомой форме, но покажет, как каждый файл изменялся между номера редакций.

Для вашего форматирования вы можете использовать grep для подсчета количества сложений и вычитаний в каждом файле.

Надеюсь, это поможет!

2 голосов
/ 16 ноября 2008

SVN (или любой подобный инструмент) не различает измененную строку и строку, которая была удалена и заменена чем-то другим. Тем не менее, тем не менее, вам лучше всего получить разницу (как сказал jordan002), а затем искать строки, начинающиеся с + или -. Для каждого - была удалена строка, для каждого + была добавлена ​​строка (вы можете заставить svn игнорировать пробелы в diff с помощью svn diff --diff-cmd diff -x -w -x -u -rOldRev:NewRev в системе с установленным Unix diff). Затем вы можете сравнить их. Унифицированный diff будет организован в виде фрагментов (различных частей файла, которые были изменены), разделенных строками, начинающимися с @@, и вы можете, для каждого фрагмента, сказать, что меньшее количество удаленных и добавленных строк было числом измененных строк, и для каждой добавленной строки, которая была удалена больше, чем ханк, была добавлена ​​строка, а для каждой добавленной строки, которая была удалена больше, чем ханк, была удалена строка. Не идеально, но относительно хорошо для вашей оценки.

Еще одно замечание: если вы используете это для оценки программистов, будьте осторожны. LOC - не лучший метод измерения относительной эффективности.

1 голос
/ 22 октября 2011

Я также пытался решить задачу типа «сколько строк было удалено, добавлено или просто изменено за выбранный период времени». Поэтому я написал простой сценарий оболочки (только для Linux). Он собирает некоторые статистические данные о модификациях кода. Более подробную информацию и общий сценарий вы можете найти здесь:

http://cyber -fall.blogspot.com / 2011/10 / инструменты-линукс-СВН-сгенерировать-statistic.html

Надеюсь, это поможет вам и другим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...