subversion hooks
Потребовалось тут неожиданно исправить сообщение после свершившегося коммита изменений в subversion. Нашёл в клиенте TortoiseSVN чудесную опцию Edit log. Но при попытке её заюзать получил большой облом в виде сообщения: «svnadmin: Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook».
Курение интернета показало, что для этого потребны некие subversion hooks, каковые могут представлять собой скрипты или даже бинарники, используемые subversion при различных событиях. Некий аналог триггеров в БД, в общем.
Как утверждает методичка, лежать они должны в каталоге path_to_svn_repository/hooks. Я полез на сервак смотреть, лежит ли там что-нибудь, в этом каталоге. Оказалось, что лежит. Некий набор файлов с расширениями *.tmpl. Курение методички на предмет как же эти скрипты заюзать, показало, что нужно дать им права на исполнение. Я дал им право на исполнение, перезапустил svnserve, однако нужного эффекта это не принесло — всё равно получал вышеуказанное сообщение. Методичка умолчала о самом главном — у файла нужно убрать расширение .tmpl.
Конкретно для правки свойства svn:log, каковое и является собственно комментарием при коммите, необходимо наличие хука pre-revprop-change. Таким образом переименовываем файл path_to_svn_repository/hooks/pre-revprop-change.tmpl в path_to_svn_repository/hooks/pre-revprop-change, даём ему права на исполнение, перезапускаем svnserve, и вуаля — можем редактировать каменты коммита либо через Edit log в TortoiseSVN, либо вот такой командой:
svnadmin setlog /usr/local/svn -r 103 /usr/local/svn/log.txt
где 103 — это номер ревизии, которая должна подвергнуться редактированию, а /usr/local/svn/log.txt — это файл с сообщением, которое должно стать новой версией комментария к 103-ей ревизии. У меня не настроен русский в серверной консоли, поэтому я решил сделать комментарий в виде файла в нужной кодировке.
Comments
Comments powered by Disqus