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

StackOverflow https://stackoverflow.com/questions/140614

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Спасибо!

Другие советы

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

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

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

я думаю настоящий, Главный вопрос, который вы должны задать себе (который вы, возможно, уже задавали себе), заключается в следующем:«Как мне проще всего протестировать свой код перед его развертыванием?»

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

Таким образом, вы можете протестировать свой код, даже не выполняя никаких коммитов.В результате вы не будете засорять свой багажник сломанными или бесполезными коммитами.В общем, сохранение независимости независимых вещей — хорошая идея (TM).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top