Могу ли я использовать Subversion таким образом, чтобы «commit» автоматически обновлял файлы моего сервера? - PullRequest
4 голосов
/ 02 февраля 2010

Хотелось бы узнать, есть ли способ сделать так, чтобы при фиксации изменений с использованием Subversion эти изменения автоматически отражались на моем сервере в папке тестирования? Возможно, эта идея иррациональна. Я изо всех сил пытаюсь получить хороший общий вид здесь. Если бы я держал хранилище Subversion на сервере, это было бы разумно?

Ответы [ 5 ]

4 голосов
/ 02 февраля 2010

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

Однако по своему опыту я обнаружил, что более гибко настроить непрерывную интеграцию / сервер сборки, например TeamCity или Hudson , с работой, проверяет svn-репозиторий каждую минуту или около того на наличие обновлений. Если есть обновления, вы можете «развернуть» их в каталоге тестирования. Преимущество этого пути заключается в том, что вы можете автоматизировать дополнительные задачи, такие как перезапуск веб-сервера и / или запуск модульных тестов и только обновление при успешном выполнении и т. Д.

Кроме того, сервер subversion не обязательно должен находиться на том же сервере, что и ваша среда, которая требует обновления.

3 голосов
3 голосов
/ 02 февраля 2010

Я хотел бы знать, есть ли способ сделать так, чтобы при фиксации изменений с использованием Subversion эти изменения автоматически отражались на моем сервере в папке тестирования?

Да, конечно. То, что вы хотите, называется ловушкой после фиксации - см. Эту ссылку для соответствующих SVN FAQ.

Общая стратегия - иметь рабочую копию на вашем сервере. Когда вы фиксируете, скрипт вызывается, и его задача - заставить рабочую копию вашего сервера инициировать svn update.

2 голосов
/ 02 февраля 2010

Альтернативой (и для меня предпочтительнее) является использование push-сборки после успешной сборки на CI-сервере. Нет смысла размещать код на сервере, который не работает правильно.

0 голосов
/ 02 февраля 2010

Попробуйте svnsync ?

Если это не интересно, вы можете довольно легко сделать что-то особенное с помощью incron & rsync

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