Автоматизация обновления SVN
-
05-07-2019 - |
Вопрос
Я часто захожу на сервер, переключаюсь в определенный каталог и запускаю svn-update
Я думаю, что, возможно, есть очень простой способ автоматизировать это, поэтому я могу просто указать подкаталог, когда я запусту скрипт, и он войдет через SSH, перейдет в нужный каталог и запустит svn-update. р>
Это работа для Capistrano или простой скрипт bash справится с этой задачей?
Решение
Похоже на работу для cron . Выполните 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.
Другие советы
Возможно, вам следует спросить себя, почему вы выполняете это действие? Р>
Может ли сервер сборки, такой как CruiseControl или Hudson, решить более общий случай (узнать, когда была выполнена фиксация SVN)?
Если вам нужен мониторинг на определенном svn-сервере, и у вас есть доступ к нему для администрирования, вы можете включить переадресацию на сервер после фиксации, например, чтобы отправлять вам электронную почту при каждом коммите (или только в некоторых определенных типах). коммитов).
Было бы полезно, если бы вы могли прояснить случай использования вашей ситуации.
это сделает простой скрипт bash, добавив команду обновления svn в файл / etc / profile.
здесь для обработки сценариев bash .
Если вы хотите запустить его из другого окна (т. е. не входить в систему), просто помните, что ssh не завершит работу, если запущен процесс, поэтому вы можете запустить обновление в фоновом режиме, причем все перенаправлены на / DEV / нуль.