2010-09-27 1 views
1

Мне нужно работать с веб-приложением. Контрольная версия каталоги структурированы как:Управление версиями и сложные приложения, которые устанавливают файлы везде

appname/conf 
appname/www 
appname/etc 
appname/keys 
appname/lib 
... 

Однако для применения на работу, в настоящее время он должен жить в системе каталогов:

/etc/httpd/conf.d 
/var/www/html 
/etc/appname 
/etc/pki/tls/ 
/usr/lib/perl5/... 
... 

Существует RPM взять код VC'ed и создайте пакет, который помещает код в производственное место (например,/var/www/html и другие). Нет инструкций по установке, я должен использовать RPM и импровизировать (не знаю, что я знаю).

В таком случае, как все редактируют приложение, поддерживая функции управления версиями (git diff и т. Д.) И внося изменения в приложение быстро, чтобы его можно было запустить? Приложение написано на Perl, поэтому нет ожидаемого этапа компиляции.

Пути я думал, являются:

  • работы по директории VC'ed (и код не выполняется немедленно, вы должны иметь некоторые установки шага)
  • работы над кодом в окончательное местоположение (так что редактирование кода сразу же работает, но вам нужно вручную перевести код обратно в VC'ed dirs)
  • напишите программу просмотра файловой системы, которая следит за изменениями в каталоге VC'ed и устанавливает измененные файлы в их окончательный (возможно, что-то подобное существует?)
  • некоторые другие очевидный метод Я забыл, я надеюсь, что кто-то может сказать мне :-)

Как все обрабатывают такие случаи?

ответ

0

Я бы работал над кодом на тестовом сервере, но с кодом в правильных местах. Затем контроль версий должен будет иметь возможность собирать необходимые файлы из своих соответствующих местоположений, но вы не развертываете их до «окончательного» местоположения до готовности (так что в основном это будет «шаг установки», как вы выразились).

Поскольку изменение вещей, чтобы быть более разумным, не может быть для вас прямым выбором, возможно ли, чтобы вы могли символически ссылаться из системных каталогов на каталог VC?

0

Существует разница между:

  • контроля версий: где вы управляете источником и построить доставку (может быть в вашем случае tar.gz всех файлов, необходимых для развертывания в системные каталоги)
  • управление выпуском: где вы берете доставку и копируете/развертываете ее в своей рабочей среде.

Некоторые вид непрерывного процесса интеграции (на основе планировщика, как Hudson) может помочь вам контролировать VC и строить/развернуть как только новый коммит сделал.