Автоматизация обновления SVN - PullRequest
5 голосов
/ 30 июля 2009

Я часто захожу на сервер, переключаюсь в определенный каталог и запускаю svn-update

Я думаю, что, возможно, есть очень простой способ автоматизировать это, поэтому я могу просто указать подкаталог при запуске скрипта, и он войдет через SSH, перейдет в нужный каталог и запустит svn-update.

Это работа для Capistrano или простой скрипт bash справится с этой задачей?

Ответы [ 3 ]

5 голосов
/ 30 июля 2009

Звучит как работа для крон . Выполните crontab и добавьте следующую запись:

#min hour date month day command
 0   *    *    *     *   ssh user@host '(cd path/to/working/copy; svn update)' 

Вам может потребоваться настроить ssh-аутентификацию без пароля с помощью ssh-agent , чтобы он не запрашивал.

РЕДАКТИРОВАТЬ (в комментариях ниже):

Если у вас достаточно прав для этого, запустите

ssh user@host crontab -e

Затем добавьте следующую запись:

#min hour date month day command
 0   *    *    *     *   (cd path/to/working/copy; svn update)

Вы можете игнорировать часть над правкой, если ваш сервер не позволяет использовать cron.

2 голосов
/ 30 июля 2009

Возможно, вам следует спросить себя, почему вы выполняете это действие?

Может ли сервер сборки, такой как CruiseControl или Hudson, решить более общий случай (узнать, когда была выполнена фиксация SVN)?

Если вам нужен мониторинг на определенном сервере SVN, и у вас есть доступ к нему для администрирования, вы можете включить переадресацию на сервер после фиксации, например, чтобы отправлять вам электронную почту при каждой фиксации (или только для некоторых конкретных типов коммитов).

Было бы полезно, если бы вы могли прояснить случай использования вашей ситуации.

0 голосов
/ 30 июля 2009

Простой bash-скрипт сделает это, добавив команду svn update в ваш файл / etc / profile.

См. здесь для bash login Обработка скрипта.

Если вы хотите запустить его из другого окна (то есть не войти в систему), просто помните, что ssh не завершит работу, если запущен процесс, поэтому вы можете запустить обновление в фоновом режиме со всеми перенаправленными /dev/null.

...