svn post-commit execute (если сообщение ~ Revision.blah) - PullRequest
3 голосов
/ 30 августа 2011

Мне нужен более интеллектуальный сценарий пост-фиксации.

Если в сообщении о коммите указано что-то вроде «Добавление редакции-v.10.3», необходимо выполнить команду ssh.

Возможно ли это сделать с помощью post-commit?

Ответы [ 3 ]

4 голосов
/ 30 августа 2011

Нет простого способа получить сообщение коммита из ловушки SVN post-commit. Вы можете запросить у svn log сообщение, а затем разобрать его.

 MESSAGE=$(/usr/bin/svn log "$1" -r HEAD --limit 1 --incremental | sed '1,3d')

От: здесь

Чтобы получить сообщение фиксации от post-commit, используйте это:

MESSAGE=$(svnlook propget --revprop -r $REV $REPOS_PATH svn:log)
1 голос
/ 30 августа 2011

НЕТ! НЕТ! НЕТ!

Последнее, что вы должны сделать, это выполнить ssh для коммита поста!

Я не уверен, каковы ваши намерения, и я предполагаю, что они будут честными. Однако помните, что Subversion не вернет управление клиенту, пока не завершится выполнение ловушки после фиксации. Если выполнение вашей команды ssh занимает всего десять секунд, то пользователь видит, что svn commit висит там в течение десяти секунд, прежде чем он сможет что-либо сделать.

За эти десять секунд у пользователя разовьется кипящая ненависть к вам, компании и Subversion. Они станут озлобленными оболочками своих прежних я, и это будет ваша вина ! Вы хотите, чтобы эта вина свисала с вашей головы? Я так не думал.

Лучшее решение - использовать сервер непрерывной сборки, такой как Jenkins , и выполнять эту команду SSH. Он может принять результаты команды, а в случае неудачи отправляет результаты по электронной почте разработчику и его команде. Jenkins чрезвычайно прост в настройке и использовании, и выполнение этого через Jenkins (т. Е. Правильный путь) не должно занять более нескольких часов (максимум).

Таким образом, коммиты пользователей там не будут висеть, но они все равно получат необходимую информацию. И, поскольку он привязан к Дженкинсу, вы, вероятно, найдете для Дженкинса всевозможные плагины, которые делают всевозможные изумительные вещи, которые вы не могли себе представить. Ты будешь героем и почитаем как бог. Разве это не лучше, чем бурлящая ненависть?

Выбор за вами.

(Кстати, вы можете получить сообщение о коммите, выполнив svn propget --rev-prop -r $REV svn:log)

0 голосов
/ 13 апреля 2012

Просто к вашему сведению, то, что я только что установил, это скрипт php для исполнения после коммитаЕсли вы знакомы с PHP, это даст вам большой контроль и возможность запуска команды ssh.Я изложил это здесь: https://stackoverflow.com/a/10146169/654235

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...