Организация коллективной работы над проектом
Материал из 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, чтобы снизить нагрузку на хранилище.