Организация коллективной работы над проектом

Материал из Umicms
Перейти к:навигация, поиск

Задача:
Во многих веб-студиях над проектом работают несколько разработчиков одновременно. У каждого из них стоит своя задача, и, по мере её выполнения, они вносят изменения в уже установленную систему. Каким образом можно быть уверенным, что в процессе разработки все файлы останутся работоспособными и никакие данные не будут утеряны, в результате внесения не согласованных изменений?

Решение:
В действительности, решения уже существуют. Рассмотрим одно из решений на примере SVN (http://ru.wikipedia.org/wiki/Svn). Осталось его только внедрить.

  • центральный экземпляр системы UMI.CMS ставится на некий домен, к которому есть лицензионный ключ (фактически, это обычный работающий сайт);
  • создаётся ряд субдоменов, по одному на каждого разработчика, с разными документрутами (каталог с файлами, отличный от того, что используется центральной версией системы);
  • все эти субдомены добавляются в центральный экземпляр UMI.CMS как зеркала(в административной панели http://help.umi-cms.ru/index.html?module_config_additional_domains.htm);
  • файлы центрального экземпляра добавляются в svn;
  • на всех субдоменах делается чекаут из svn;
  • разработчики монтируют себе субдомены (любым доступным способом - NFS, SMB, shared disk и т.д.), таким образом каждый получает свою копию файлов, но все работают с одной БД (центральной);
  • когда какой-либо разработчик делает коммит файлов в своём субдомене, после этого в центральном экземпляре надо делать апдейт.



Примечания:

  • можно настроить svn, чтобы при коммите обновление в центральной системе происходило автоматически;
  • тяжёлый контент (картинки, видео) лучше загружать сразу на центральном домене и не помещать в svn, чтобы снизить нагрузку на хранилище.