«Молодой учёный»
.
№ 24 (366)
.
Июнь 2021 г.
10
Информационные технологии
Одним из самых популярных инструментов VCS была си-
стема RCS, которая до сих пор распространяется на многих
компьютерах. RCS работает, сохраняя наборы патчей (то есть
различия между файлами) в специальном формате на диске;
затем он
может воссоздать, как любой файл выглядел в любой
момент времени, сложив все патчи.
2. Централизованная система контроля версий
Следующая важная проблема, с которой сталкиваются люди,
заключается в том, что им необходимо сотрудничать с разработ-
чиками других систем. Для решения этой проблемы были раз-
работаны централизованные системы контроля версий (CVCS).
Эти системы (такие как CVS, Subversion и Perforce) имеют один
сервер, который содержит все версионные файлы, и несколько
клиентов, которые извлекают файлы из этого центрального
места. На протяжении многих лет это был стандарт для контроля
версий.
Эта настройка
предлагает много преимуществ, особенно
перед локальными VCS. Например, каждый в определенной
степени знает, что делают все остальные в проекте. Админи-
страторы имеют детальный контроль над тем, кто что может
делать, и гораздо проще администрировать CVCS, чем иметь
дело с локальными базами данных на каждом клиенте. Тем не
менее, эта установка также имеет
некоторые серьезные недо-
статки. Наиболее очевидной является единственная точка от-
каза, которую представляет централизованный сервер. Если
этот сервер отключается в течение часа, то в течение этого часа
никто не сможет вообще сотрудничать или сохранять верси-
онные изменения во всем, с чем они работают. Если жесткий
диск, на котором находится центральная база данных, повре-
жден и надлежащее резервное копирование не было сохранено,
вы потеряете абсолютно все — всю историю проекта, за исклю-
чением того, что отдельные снимки
будут на их локальных ком-
пьютерах. Локальные системы VCS страдают от этой же про-
блемы: всякий раз, когда у вас есть вся история проекта в одном
месте, вы рискуете потерять все.
3. Распределенная система контроля версий
Именно здесь вступают в действие распределенные си-
стемы контроля версий (DVCS). В DVCS (например, Git, Mercu-
rial, Bazaar или Darcs) клиенты не просто проверяют последний
снимок файлов; скорее они полностью отражают хранилище,
включая его полную историю. Таким образом, если какой-либо
сервер умирает, и эти системы
сотрудничают через этот сервер,
любое из клиентских репозиториев может быть скопировано
обратно на сервер для его восстановления. Каждый клон — это
полная резервная копия всех данных.
Кроме того, многие из этих систем прекрасно справля-
ются с наличием нескольких удаленных репозиториев, с кото-
рыми они могут работать, поэтому вы можете одновременно
работать с разными группами людей по-разному в рамках од-
ного проекта. Это позволяет настроить несколько типов ра-
бочих процессов, которые невозможны в централизованных
системах, например, иерархические модели.
На рынке лидирует система контроля версии — Git.
Также
для работы с ней есть инструмент Gitlab. GitLab — веб-инстру-
мент жизненного цикла DevOps с открытым исходным кодом,
представляющий систему управления репозиториями кода для
Git с собственной вики, системой отслеживания ошибок, CI/CD
пайплайном и другими функциями.
У распределенной системы контроля версий больше плюсов
для использования в разработке программных продуктов, чем
другие системы контроля версий, что позволяет говорит о не-
обходимости её использования.
Рис. 2.
Достарыңызбен бөлісу: