Как сделать так, чтобы имя рецензента вводилось в комментарии SVN? - PullRequest
1 голос
/ 14 июля 2009

В настоящее время я блокирую любую фиксацию в SVN, которая не содержит комментарий с использованием хуков предварительной фиксации.

Теперь я хочу расширить это так, чтобы комментарий о коммите имел строку

"Отзыв: имя "

В настоящее время файл ловушки предварительной фиксации выглядит как

:: SET REPOS=%1

:: Transform forward-slashes to back-slashes for Windows
:: SET REPOS=%REPOS:/=^\%

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO CHECKSUOFILES
echo "Commit Comments are Required" >&2
exit 1 

Кто-нибудь реализовывал нечто подобное?

Я сейчас использую SVN 1.6.0

Ответы [ 4 ]

5 голосов
/ 14 июля 2009

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

1 голос
/ 14 июля 2009

Я выбрал довольно примитивный путь, чтобы ответить на свой вопрос. Я изменил хук pre commit для поиска текста «Reviewed by:», иначе он заблокирует коммит

Есть проблемы с этим

  • Вы можете обойти это, просто введя Reviewed By: и затем не имя
  • Мы просим разработчиков войти. Отзыв: Никто не коммитирует без проверки

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

0 голосов
/ 14 июля 2009

Возможно, вы захотите использовать что-то вроде Git (http://git -scm.com / ) вместо SVN. С Git вы можете получить «благословенную» версию проекта, которую могут написать только ваши рецензенты. Все люди работают с кодом на своих локальных машинах и могут перенести свои изменения в «обзорный» экземпляр проекта. Рецензенты могут видеть изменения в экземпляре «review» и выдвигать отдельные изменения до «благословенной» версии.

Git также может конвертировать ваши существующие проекты SVN напрямую.

0 голосов
/ 14 июля 2009

У вас уже есть пример. Просто добавьте что-то вроде:

set reviewed=no
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr "reviewed by" && set reviewed=yes
if "%reviewed%"=="no" GOTO NOTREVIEWED

Тем не менее.

Просмотр изменений проще всего, когда изменение уже зафиксировано. Кроме того, как уже упоминал Нил, вы не хотите препятствовать регулярным коммитам размера прикуса. Просмотр огромного количества изменений не работает хорошо.

Если вы действительно хотите убедиться в том, что каждое изменение проверено, вам следует использовать концепцию функциональных ветвей . Сделайте ветку для каждого изменения и разрешите частые небольшие коммиты без отзывов там. Когда изменение будет готово, рецензент может проверить его на фиксацию и зафиксировать изменения в магистраль.

...