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