ОК, здесь моя точка зрения, у меня есть рабочая копия svn на сервере, которая должна быть обновлена. поэтому я настраиваю cronjob для обновления svn очень часто. мой скрипт просто делает обновление svn в определенный промежуток времени. Я пытаюсь использовать сценарий крюка post-commit на сервере svn, но не удалось.Концепция Subversion: обновление svn или svn info
В любом случае, мой босс попросит меня изменить скрипт, чтобы сделать информацию svn, и сравнить текущий оборот с оборотом рабочей копии, а затем, если есть изменение, затем запустить обновление. он считает, что загрузка сервера на svn-сервере будет меньше, чем выполнение обновления за тот же промежуток времени. мой hardt - это то, что обновление svn, безусловно, сравнивается, но версия перед обновлением.
У меня нет проблем при выполнении скрипта svn info, но я не думаю, что это что-то изменит.
Я ищу информацию о обновлении svn и о том, что он на самом деле делает, но не нашел что-то полезное.
изменить: @Wrikken и @Ben, прежде всего позвольте мне прояснить мое окружение. my svn environement is on lan only, поэтому мы используем протокол svn (svn: //). мой svn-сервер - это сервер ubuntu, а мой клиент - сервер debian. У меня уже есть hookscript configure и работаю на моем svn-сервере для синхронизации с третьим сервером, который является зеркалом моего svn-сервера. мой svn сервер работает с пользователем svn. мой скрипт hook и мой скрипт принадлежат одному пользователю (svn). вот мой пост фиксации сценария (команда работы svnsync отлично) #!/bin/ш
REPOS="$1"
REV="$2"
ME=`whoami`
echo "post-commit $REPOS $REV user: $ME " >> /var/log/svnsync.log
# non interactive:
/usr/bin/svnsync sync --non-interactive svn://path/to/mirror/repository --username "user" --password "######" >> /var/log/svnsync.log 2>&1
/path/to/script/script.sh >> /var/log/svnimpact.log 2>&1
теперь вот мой сценарий, подключить и обновить рабочую копию на мой второй сервер (его только SVN клиент не сервер SVN)
#! /bin/sh
/usr/bin/sshpass -p "######" /usr/bin/ssh [email protected] 'svn update /path/to/working/copy'
выполняет только скрипт обновления отлично работает с тем же пользователем, который работает сервер SVN (SVN) , но его никогда не было выполнять, когда обязательство выполняется. Я сейчас потерялся.
'svn info', а затем' svn update' является более тяжелым на сервере, а затем просто 'svn update', что на самом деле не так много, если нечего обновлять. Мне любопытно, какие проблемы вы столкнулись с крюком после фиксации, отлично работает здесь, чтобы запускать сборки .... – Wrikken
@Wrikken Finaly мы находим наши проблемы. пользователь svn никогда не делает ssh-соединение на этом сервере раньше. поэтому с командой sshpass ему был задан пароль на вопрос, доверяли ли вы компьютеру. поэтому команда никогда не работает должным образом. мы меняем пост-фиксацию, чтобы вместо этого использовать ключ ssh, и все начинает работать, должно ли оно должно быть – bl00d666