Метод организации репозитория исходного кодаШмаркатюк Сергей (EPAM Systems)
Актуальность организации налаженных процессов разработкиОсобенности, которые присущи современному стилю разработки веб-приложений:Подверженность частым изменениям требованийПроекты более склонны к увеличению в размерах чем к уменьшениюБольшое число используемых при разработке инструментов и технологийНекоторая степень хаотичности, с которой всегда приходится боротьсяКак используемые инструменты влияют на процесс разработки?Каждый инструмент используется для решения ряда специфических задач
Решение задачи предполагает предшествующее использованию инструмента удовлетворение набора требований, без которых инструмент не будет эффективен или не будет работать
Часто набор требований, выдвигаемый множеством используемых инструментов удовлетворен не полностью, в связи с чем эффективность их использования уменьшаетсяУправление конфигурациямиУправление конфигурациями определяет:Способ управления рабочими материаламипроекта
Как производится контроль над проектом
Как осуществляется внесение изменений
Как определить состояние отдельных задач
Как определить состояние  всего проекта в целомВ частности, управление конфигурациями занимается:Управлением выпуском (release management)
Наладкой поставок (delivery)
Организацией налаженных процессов разработки
Согласованием способа взаимодействия разных частей программного проекта3
Классификация инструментов управления конфигурациямиВ область интересов управления конфигурациями попадают следующие процессы: Контроль версий (version control)Юнит-тестированиеАнализ покрытия кодаНепрерывная интеграция (continuous integration)Статический анализ кодаГенерация документацииУправление сборками (build management)
Контроль версий(version control)Контроль версий – основной процесс управления конфигурациями
Отсутствие необходимости использовать контроль версий при разработке практически равна нулю
Большинство разработчиков знакомы с CVS,Subversionили VSS; популярность приобретают распределенные системы контроля версий: git, mercurial, bazaar
Обычно разработчики не задумываются о продуманной организации репозитория. Subversion предлагает простейшее решение, которое используется чаще всего: деление на trunk, branches и tags.
Одна из самых больших головных болей разработчиков – слияние. Без слияний жизнь проще.
При командной разработке полностью избежать слияний сложно.
Можно минимизировать их количество регламентируя ситуации, при которых можно проводить слияния, а при которых – нет.5
Управление сборками (build management)Управление сборками – автоматизация действий по: Компиляции исходного кода
Развертыванию (deployment) приложения
Запуску юнит-тестов
Инициализации базы-данныхИнструменты управления сборками характеризуются:Файлами сборок, использующих XML-синтаксис (Ant, Nant, Maven, MSBuild, Phing)
Наличием специфических для процесса сборки команд:
Групповые операции над файлами
Компиляция
Развертывание
Взаимодействие с системами контроля версий
Простотой интеграции с инструментами, использующимися при разработкеЮнит-тестирование(unit-testing)Большинство инструментовюнит-тестирования очень похожи между собой и заимствуют идеи, заложенные при создании JUnit
Использование юнит-тестирования в программных проектах, написанных на интерпретируемых языках программирования (PHP, в частности) определяет кроме необходимости управления сборками также и нужду в более основательном подходе к управлению конфигурациями.

метод организации репозитория исходного кода