logo
Проектирование инт-прил / лекции / Проектирование инет приложений

Совместная работа над проектом

Современные интернет-приложения сложны и, как правило, в их разработке участвует несколько человек. Для взаимодействия разработчиков между собой служат так называемые системы контроля версий (VCS-VersionControlSystem, другая распространенная аббревиатура -RCS,RevisionControlSystem). Существует несколько систем контроля версий:CVS,SVN,GIT. Независимо от конкретной реализации, все они выполняют следующие функции:

На следующем рисунке показана разница между "версиями" и "ветвями". C0 - начальныйcommit, самая первая версия некоего приложения. Пусть приложение состоит из одного файла -main.cpp. До точкиC2 включительно существуют версии этого файла. То есть, были некие изменения - их зафиксировали при помощи операцииcommitи, при необходимости, эти изменения могут быть отменены. ПослеC2 существуют уже 2 раздельных ветви этого файла. Предположим, Вы вносите новый функционал. Текущую ветку приложения -master- Вы при этом не трогаете, она установлена и работает. Новые функции добавляются в ветку, которая называетсяiss53. Коммитов, разумеется, может быть сколь угодно много, на приведенном рисунке их 2 (C3,C5). После того, как новый функционал отлажен - его можно объединить с ранее имевшейся веткойmaster, что продемонстрировано точкойC6.

Репозиторий позволяет нескольким программистам совместно работать над одними и теми же текстами программ, не мешаясь друг другу. На определенном этапе развития проекта одного только репозитория может оказаться недостаточно. Кроме того, репозитории, как правило, плохо предназначены для совместной работы с бинарными файлами. Поэтому крупные проекты, как правило, кроме системы контроля версий, используют и другие программы, позволяющие организовать совместную работу над проектом: менеджеры задач, системы организации совместного доступа к документам и так далее.