Если вы программист или разработчик и работаете над приложениями или каким-либо веб-сайтом, вам определенно потребуется некоторая система управления версиями (Version Control System) для отслеживания изменений. Система контроля версий также может обозначаться как SCM (Source Code Management) или RCS (Revision Control System).
Контроль версий - это метод или категория программных инструментов, которые помогают отслеживать изменения в коде, чтобы, если что-то пойдет не так, мы могли проводить сравнения в разных версиях кода и легко вернуться к предыдущим версиям. Это очень полезно, когда несколько разработчиков постоянно работают или меняют исходный код.
Преимущества системы контроля версий
Используя VCS, программисты могут просматривать историю проекта, чтобы узнать следующие детали:
- Какие изменения были внесены в код?
- Кто вносил изменения в код?
- Когда были внесены изменения в код?
- Зачем были нужны изменения?
Вот простая графическая иллюстрация, которая дает вам представление о том, как на самом деле работает VCS.
На приведенном выше рисунке первая строка со светло-синими шарами - это основная ветвь, которая является основной ветвью исходного кода. Таким образом, v0.1 и v0.2 - это несколько версий, созданных для создания своего рода снимка всего исходного кода. Мы создали несколько веток из основной ветки, например ветку релиза, разработки и исправления, в соответствии с нашими требованиями. Несколько разработчиков могут работать над одним и тем же проектом, создавая разные ветви и в конце объединяя их с главной ветвью.
Типы VCS
Существует два типа VCS, а именно:
- Централизованная система контроля версий (CVCS),
- Распределенная система контроля версий (DVCS).
Во-первых, давайте кратко рассмотрим централизованную систему контроля версий.
Централизованная система контроля версий
Централизованная система контроля версий работает по принципу клиент-сервер. Сервер будет иметь всю информацию, которая передана клиенту. Можно сказать, что это своего рода общий репозиторий, который предоставляет разработчикам последний код. Так что разработчики будут каждый раз работать над мастер-копией. Вы должны загрузить последнюю копию кода, поработать над ней (зафиксировать изменения), а затем отправить код обратно в репозиторий.
Главный недостаток централизованной системы контроля версий заключается в том, что она представляет собой единую точку отказа. Если центральный сервер вышел из строя, вы не сможете его использовать. Если вы выполняете удаленное исправление, это также займет время. Вам понадобится подключение к Интернету, чтобы внести какие-либо изменения.
Примеры:
С открытым исходным кодом -> Concurrent Versions System (CVS), Subversion (SVN).
Проприетарные -> TeamCity, Vault, IBM Configuration Management Version Control (CMVC).
Распределенная система контроля версий
Распределенная система контроля версий имеет централизованный репозиторий, а также все разработчики имеют локальную копию репозитория.
Разработчики могут одновременно работать со своей локальной копией. Им не требуется подключение к интернету для работы над кодом. Они могут делать все, кроме push и pull. Если центральный сервер выйдет из строя, то это не повлияет на работу локального репозитория.
Примеры:
С открытым исходным кодом – Git, Mercurial, Bazaar.
Проприетарные – Visual Studio Team Services, Plastic SCM.
Разница между архитектурой SVN (централизованная VCS) и GIT (распределенная VCS)
Следующий рисунок объясняет разницу между CVCS и DVCS.
Из приведенного выше рисунка мы можем легко понять, что в SVN (централизованная VCS) у нас есть только центральный репозиторий, но в GIT (распределенная VCS) у нас есть центральный репозиторий, а также локальный репозиторий.
Надеюсь, вы получили общее представление о VCS и ее типах.
Оригинал: Introduction To Version Control System
Комментариев нет:
Отправить комментарий