Как я могу использовать перехваты после фиксации для копирования зафиксированных файлов в веб-каталог из SVN? - PullRequest
10 голосов
/ 26 сентября 2008

На моем сервере Ubuntu установлены Apache и Subversion. Я использую этот сервер в качестве промежуточного сервера, исключительно для целей тестирования. Я использую Apache для размещения веб-приложения и Subversion для хранения версионных копий исходного кода.

Мой текущий рабочий процесс:

  • Внести изменения в файл
  • Зафиксируйте файл в хранилище Subversion
  • Загрузите файл, новый через SFTP, в публичный каталог Apache
  • Просмотр изменений в моем веб-браузере

Я был бы намного счастливее, если бы мой рабочий процесс был таким:

  • Внести изменения в файл
  • Зафиксируйте файл в хранилище Subversion
  • В фоновом режиме Subversion помещает копию зафиксированного файла в общедоступный каталог Apache
  • Просмотр изменений в моем веб-браузере

У меня очень мало опыта администратора сервера, и любая помощь или указатели приветствуются. Я слышал, что ловушки после фиксации - это то, что мне нужно, и что я могу написать bash-скрипты, чтобы сделать это, но я не уверен, с чего начать, и не нашел ничего после большого количества поиска в Google.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 26 мая 2009

Я думаю, что реальный , всеобъемлющий вопрос, который вы должны себе задать - который вы, возможно, уже задавали себе, конечно, - заключается в следующем: «Как я могу наиболее легко протестировать свой код перед развертыванием это? "

Я думаю, что хорошим ответом является установка Apache на ваш ящик для разработки и запуск его под вашим собственным пользователем с путем webroot и / или cgi на /home/richardhenry/src/mywebsite (или там, где вы проверяете свой код).

Таким образом, вы можете протестировать свой код даже без фиксации. В результате вы не будете засорять свой сундук сломанными или бесполезными коммитами. В общем, независимость - это хорошая идея (ТМ).

В качестве альтернативы, синхронизируйте веб-сервер с вашим рабочим каталогом с помощью rsync или напишите скрипт, который помещает ваши файлы из окна dev на ваш промежуточный сервер, и добавьте правило Makefile, которое запускает ваш скрипт (или вызывает rsync) , Если вы хотите быть действительно модным, используйте inotify или какой-нибудь другой монитор уведомлений о файлах для автоматического запуска вашего сценария.

0 голосов
/ 26 сентября 2008

Это можно сделать, но автоматическая отправка каждого коммита на производственный веб-сайт не всегда хорошая идея. Иногда есть другие изменения, которые необходимо внести, и ломать сайт, потому что новый код есть, но схема базы данных еще не обновлена, просто смущает.

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

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

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