Если вы программист или разработчик и работаете над программными приложениями или любым веб-сайтом, вам определенно потребуется какая-то система управления версиями для отслеживания изменений.

Система контроля версий также называется инструментами SCM (Source Code Management) или RCS (Revision Control System).

Контроль версий — это метод или категория программных инструментов, которые помогают отслеживать изменения в коде, поэтому, если что-то идет не так, мы можем проводить сравнения в разных версиях кода и легко возвращаться к предыдущим версиям.

Это очень полезно, когда несколько разработчиков постоянно работают или меняют исходный код в одном проекте.

Преимущества системы контроля версий

Используя VCS, программисты могут просматривать историю проекта, чтобы узнать следующие детали:

  • Какие изменения были внесены в код?
  • Кто внес изменения в код?
  • Когда были внесены изменения в код?
  • Зачем нужны были изменения?
Вот простая графическая иллюстрация, которая дает вам представление о том, как на самом деле работает VCS.
На приведенном выше рисунке первая строка с голубыми шариками — это основная ветвь, которая является основной ветвью исходного кода.
Итак, v0.1 и v0.2 — это несколько версий, созданных для того, чтобы делать снэпшоты всего исходного кода
Мы создали несколько веток из основной ветки, таких как ветка release, develop и hotfix.
Несколько разработчиков могут работать над одним и тем же проектом, создавая разные ветки и, в конце концов, смержить (объединить) их с главной веткой.

Типы систем контроля версий VCS

Существует два типа VCS, а именно:
  • Централизованная система контроля версий (CVCS),
  • Распределенная система контроля версий (DVCS).
Во-первых, давайте посмотрим на централизованную систему контроля версий.

Централизованная система контроля версий

 

Централизованная система контроля версий работает в парадигме клиент-сервер.

Сервер будет иметь всю информацию, которая в случае чего будет передана клиенту.

Можно сказать, что это своего рода общий репозиторий, который предоставляет разработчикам новейший код.

Поэтому разработчики будут работать над мастер-копией каждый раз.

Это так же просто, как если бы вы могли извлечь последнюю копию кода, поработать с ней (зафиксировать изменения), а затем отправить код обратно в хранилище.

Основным недостатком централизованной VCS является то, что она является единственной точкой отказа.

Если центральный сервер вышел из строя, вы не сможете его использовать.

Если вы совершаете удаленную работу, это также займет время.

Вам понадобится подключение к Интернету, чтобы совершить любые изменения.

Примеры:

  • Open source Concurrent Versions System (CVS), Subversion (SVN).
  • Прориетарное ПО — TeamCity, Vault, IBM Configuration Management Version Control (CMVC).

Распределенная система контроля версий

Распределенная система контроля версий имеет централизованное хранилище, а все разработчики имеют локальную копию хранилища.

Разработчики могут работать над своей локальной копией одновременно.

Им не нужно подключение к Интернету для работы над кодом.

Они могут делать все в коде, кроме push и pull.

Если центральный сервер вышел из строя, то также не будет никакого влияния из-за локального хранилища.

Примеры:

  • Open source Git, Mercurial, Bazaar.
  • Прориетарное ПО — Visual Studio Team Services, Plastic SCM.

Разница между архитектурой SVN (централизованная VCS) и GIT (распределенная VCS)

На следующем рисунке показано различие между CVCS и DVCS.

Из рисунка выше легко понять, что в SVN (Centralized VCS) у нас есть только центральный репозиторий, но в GIT (Distributed VCS) у нас есть как центральный, так и локальный репозиторий.

Надеюсь, у вас есть основное понимание о VCS и ее типах.

В ближайшие дни мы опубликуем больше руководств, связанных с VCS. Следите за обновлениями!
Поделитесь статьей:

Добавить комментарий