Хуки коммитов не общаются с клиентом, за исключением случаев сбоя. Затем они отправляют пользователю все, что было отправлено на Стандартная ошибка . Скрипты Hook не могут изменить какой-либо аспект коммита. (Это не совсем так: ловушка после фиксации может изменить сообщение о коммите, автора и время фиксации, но обычно это очень плохая идея.)
Что вы можете сделать, это убедиться, что ваше сообщение коммита имеет правильный формат, а затем потерпеть неудачу при фиксации, если это не так. Пользователь может повторно отправить свой коммит в правильном формате.
Я бы не рекомендовал использовать встроенные клиентские хуки TortoiseSVN. Они выполняются на индивидуальной основе, поэтому пользователь может отказаться от них, и они не работают, если пользователь использует другой клиент (например, плагин VisualStudio AnkhSVN).
Вы не упомянули, что вы пытаетесь сделать и почему.
Вы можете использовать my hook , написанный на Perl. Хук кухонная раковина выполняет несколько задач, и одна из них гарантирует, что сообщение о фиксации имеет правильный формат. Например, вы можете потребовать, чтобы он содержал идентификатор отслеживания дефектов, или иметь длину не менее ... скажем ... 10 символов.
Однако, если сообщение о коммите пользователя не соответствует критериям, перехватчик не выполнит коммит, и пользователю придется повторить попытку. Хитрость заключается в том, чтобы поставить хорошее сообщение об ошибке, чтобы пользователь знал, что он сделал не так. Поверьте, после одной или двух попыток пользователи получают представление о том, каким должно быть хорошее сообщение о коммите.
Однако вы можете попробовать немного другой маршрут: используйте систему непрерывной интеграции, такую как Jenkins .
Что я заметил, так это то, что как только я запускаю проект на Jenkins, сообщения о коммитах автоматически улучшаются. Каждый коммит Subversion превращается в сборку. Но Дженкинс также показывает все изменения между предыдущей и текущей сборкой и сообщением о коммите.
Это в основном связано с видимостью. До Дженкинса сообщения коммитов довольно скрыты. Вы видите их, только если вы сделали svn log
, и мало кто когда-либо делал это регулярно. Тем не менее, в Jenkins, вы видите это прямо на каждой сборке и фиксации. Вы можете увидеть историю, кто ее изменил, и что они изменили с помощью нескольких кликов на веб-странице.
Это может быть лучший способ справиться с тем, что вы хотите.