Урок 6

Контроль версий VCS

1. Что такое контроль версий VCS

На любом проекте над одним кодом работает обычно несколько разработчиков. Возникает проблема с обменом кода - кто и когда внес какие изменения, можно ли их отменить, а можно ли хранить несколько версий одного и того же файла? Все эти проблемы позволяют решать системы управления версиями (VCS = Version Control System).

2. Виды VCS

Различают централизованные(CVCS) и распределённые(DVCS) VCS.

Централизованные - это более старый вид VCS - использовались ещё в 70-е года. Единое хранилище версий – это центральный репозиторий. Разработчик работает с локальной копией и отправляет изменения в центральный репозиторий. Репозиторий виден всем (у кого есть доступ), и обмен кодом – только через него.

Примеры: SVN, Perforce, MS TFS, ClearCase.

Распределённые - это «новое течение», первые системы появились в 90-е, начало 2000х, но массовое распространение получили с 2005 года. Каждый разработчик владеет копией репозитория, фактически, своим локальным «сервером» VCS. Копии легко создавать: проще экспериментировать с кодом. Передавать изменения можно между любой парой репозиториев. В распределенных VCS нет «главного» репозитория.

Примеры: git, Mercurial, Bazaar.

3. Разница между централизованными и распределенными VCS

  1. На DVCS можно всё то же, что и на CVCS.
  2. На DVCS проще выполнять слияние ветвей.
  3. На DVCS вся история хранится локально. Можно работать оффлайн и в работа в целом быстрее.
  4. Более гибкая модель обмена изменениями.
  5. Разработчики привыкли к CVCS, нужно перестраиваться.
  6. У CVCS ниже «порог вхождения» - для работы с DVCS надо лучше понимать концепции контроля версий.
  7. В мире CVCS есть фаворит – SVN, в DVCSgit.

4. Базовый сценарий работы с VCS

  1. Получить локальную «рабочую копию» кода из репозитория.
  2. Внести изменения.
  3. В случае необходимости: выполнить слияние (merge) изменений с новыми правками в репозитории.
  4. Зафиксировать изменения в репозитории.



0 Comments
Leave your comment: