Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Несколько слов об эволюции Centralized Version Control System

DevOps_Deep_27.11_site-5020-2d2668.png

СVCS (Centralized Version Control System) — централизованные системы контроля версий, работа которых основана на том, что на сервере имеется одна центральная копия проекта, а программисты совершают свои изменения в этой центральной копии.

Таким образом, если нам нужно получить какую-нибудь ветку, мы идём на сервер, и он нам отдаёт эту ветку. Схему работы CVCS легко демонстрирует простой рисунок: DEV1-20219-3c55b5.jpgВ современных проектах СVCS практически не используются, так как они устарели и считаются архаизмом. Связано это с недостаточной эффективностью и ограниченными возможностями CVCS. Например, если инженер-разработчик отправлялся в регион, где есть проблемы с интернетом, возникал вопрос: как хранить всю историю изменений в коде?

Кроме невозможности удалённой работы при плохом интернете, нельзя не упомянуть ограниченную сервером производительность и сложности при merge'е наработок разных специалистов. В общем, если на вашем проекте до сих пор применяют CVCS — бегите.

Что пришло на смену CVCS?

В настоящее время при разработке программного обеспечения используют децентрализованные (распределённые) системы контроля версий DVCS (Distributed Version Control System). Они имеют несколько иную структуру и ряд принципиальных отличий. Например, у каждого инженера/разработчика есть свой репозиторий, который полностью копирует центральный, причём центральный сервер выступает в большей степени в качестве хаба для обмена. Наиболее яркий пример — Git.

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

Схема работы DVCS

DEV2-20219-6f923b.jpg На этом пока всё. Если хотите подробнее узнать о GIT и методах работы с ним, записывайтесь на курс «DevOps практики и инструменты»!

А какую DVCS используете вы? Пишите в комментариях!

Автор
0 комментариев
Для комментирования необходимо авторизоваться