Поиск новых добавленных строк файла в SVN - PullRequest
1 голос
/ 26 декабря 2011

Я работаю в проекте svn, я просто хочу проанализировать мои подтвержденные исходные файлы и найти новые добавленные строки в файлах автоматически, используя скрипт-хук, как это можно сделать?

Ответы [ 4 ]

1 голос
/ 26 декабря 2011

НЕТ НЕТ НЕТ

Не делайте этого, используя крючок!

Когда вы используете скрипт ловушки, ваш пользователь застревает в ожидании завершения ловушки. Вместо этого используйте Jenkins для выполнения задачи. Jenkins - это система сборки, но вы можете заставить ее делать такие вещи и полностью пропустить этап сборки. Таким образом, вашим пользователям не придется ждать завершения сценария перехвата, и у вас есть место, где вы можете автоматически публиковать результаты различий, которые вы делаете.

Кстати, почему только недавно добавленные строки, а не все изменения? Вы можете проанализировать результаты svn diff, чтобы найти все добавления, но я предполагаю, что вы заинтересованы во всех изменениях.

1 голос
/ 26 декабря 2011

Первый шаг - извлечь измененные пути с помощью

svnlook changed REPO_PATH

вы должны использовать опцию -r для ревизии (CommittedRev), которая известна в скрипте после хука.

Выше приведен список измененных файлов, которые должны быть проанализированы скриптом.

Если вы попытаетесь извлечь добавленные / измененные строки, svn blame выдаст вам строки, которые были изменены в конкретной ревизии ...

svn blame -rCommittedRev:CommittedRev file:///Repository/ | grep "^ CommittedRev "

то, что вы не можете извлечь из-за вины, это строки, которые были удалены.

1 голос
/ 26 декабря 2011

Вы можете использовать svnlook, чтобы получить разность изменений, а затем выполнить поиск для строк, начинающихся со знака +, что означает добавленные строки.

Например, если я хочу проверитьчтобы увидеть, были ли добавлены какие-либо строки, которые относятся к System.out, я могу использовать следующий конвейер:

svnlook diff -t "$TXN" "$REPOS" | grep -E "^\+" | grep -qE "System\.out"

И проверить возвращаемое значение - 0 означает, что он нашел совпадающие строки.

1 голос
/ 26 декабря 2011

svn log + svn blame

Попробуйте начать svn log -v -q -l 1 внутри WC

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