Как я могу предотвратить коммиты Subversion без комментариев?
кто-нибудь знает, как предотвратить фиксацию в репозитории кода Subversion, когда нет введенного комментария фиксации?
6 ответов:
вы можете использовать крюк (поместите его в
<repository>/hooks
и имяpre-commit.bat
(Windows)):@echo off :: :: Stops commits that have empty log messages. :: setlocal rem Subversion sends through the path to the repository and transaction id set REPOS=%1 set TXN=%2 rem check for an empty log message svnlook log %REPOS% -t %TXN% | findstr . > nul if %errorlevel% gtr 0 (goto err) else exit 0 :err echo. 1>&2 echo Your commit has been blocked because you didn't give any log message 1>&2 echo Please write a log message describing the purpose of your changes and 1>&2 echo then try committing again. -- Thank you 1>&2 exit 1
src:http://www.anujgakhar.com/2008/02/14/how-to-force-comments-on-svn-commit/
вот предварительный крючок с подробным сообщением об ошибке @miku для Linux:
#!/bin/sh REPOS="" TXN="" SVNLOOK=/usr/bin/svnlook $SVNLOOK log -t "$TXN" "$REPOS" | \ grep "[a-zA-Z0-9]" > /dev/null GREP_STATUS=$? if [ $GREP_STATUS -ne 0 ] then echo "Your commit has been blocked because you didn't give any log message" 1>&2 echo "Please write a log message describing the purpose of your changes and" 1>&2 echo "then try committing again. -- Thank you" 1>&2 exit 1 fi exit 0
на самом деле, когда вы создаете репозиторий Subversion, его
hooks
подкаталог уже содержит образцы крючков. Проверьте тот, который называетсяpre-commit.tmpl
для получения подробной информации о параметрах крючка. Он также содержит пример для крючка, который вы ищете:#!/bin/sh REPOS="" TXN="" # Make sure that the log message contains some text. SVNLOOK=/usr/local/bin/svnlook $SVNLOOK log -t "$TXN" "$REPOS" | \ grep "[a-zA-Z0-9]" > /dev/null || exit 1
вы можете написать свой хук на любом скрипте или языке, пока он исполняется на вашей машине Subversion.
создать крюк предварительной фиксации. Вот это инструкции о том, как сделать это самостоятельно, или здесь является примером сценария крючка, который будет отклонять что-либо с сообщением фиксации короче 10 символов.
Если вы используете TortoiseSVN только тогда вы можете добавить свойство TortoiseSVN в корневой каталог: имя свойства:
tsvn:logminsize
значение:1
Это отключит кнопку OK в окне фиксации TortoiseSVN, тогда сообщение будет пустым. Обратите внимание, что это свойство специфично для TortoiseSVN, оно может не работать с другим клиентом SVN.
Linux скрипт для более чем 15 символов--
#!/bin/bash REPOS="" TXN="" # Make sure that the log message contains some text. SVNLOOK=/usr/bin/svnlook # Comments should have more than 5 characters LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep [a-zA-Z0-9] | wc -c) if [ "$LOGMSG" -lt 15 ]; then echo -e "Please provide a meaningful comment when committing changes." 1>&2 exit 1 fi
Источник -http://java.dzone.com/articles/useful-subversion-pre-commit