Каждый бизнесмен и программист знает эти три буквы: VCS. Нет, это не то слово, о котором вы подумали, написанное на английской раскладке. Под данной аббревиатурой скрывается ПО, которое облегчает работу с динамической информацией — система управления версиями (система контроля версий; в оригинале — Version Control System).
Не следует путать с CVS (Concurrent Versions System — система управления одновременными (параллельными) версиями), централизованной системой.
Зачем нужна система контроля версий
Эта система не даст проекту развалиться. Она удерживает силы и возможности всех сотрудников, занятых в процессе разработки, направляя их умения в нужное русло.
Хоть программист, хоть менеджер, хоть копирайтер — любой человек свободно занимается решением своей конкретной задачи, при этом не мешая выполнять служебный долг другому участнику общего большого дела.
К слову, любые недостатки, появившиеся в процессе, могут без особого труда и вреда быть исправлены впоследствии.
Плюсы и минусы трех популярных систем управления версиями
Существуют разные системы контроля версий. Давайте их сравним. Для этого возьмем три наиболее популярные: Git, SVN, Mercurial.
Git
Git — это распределенная система контроля. Она была создана, чтобы управлять процессом создания ядра Linux. Подход к решению проблем, который положен в ее основу, очень сильно отличается от CVS и SVN. Главной целью создателей было достижение впечатляющего быстродействия. Собственно, пользователи Линукса, операционной системы, под которую Гит и был «заточен» изначально, могут заметить это самое достижение во время пользования преимуществами любимой «операционки».
Также Git хорошо себя проявляет на macOS, ОС из семейства Unix.
Плюсы:
- быстродействие;
- распределенная система, пиринговая модель;
- простые и дешевые операции с кодом;
- доступная история разработки (в полном объеме) в оффлайн-режиме.
- В общем, «хейтеры» CVS/SVN оценят по достоинству.
Минусы:
- трудно перестроиться тем, кто раньше работал с SVN;
- поддержка Windows ограничена.
SVN
Собственно, SVN — это бесплатная система с открытым исходным кодом. Изначально являлась альтернативой CVS: она вобрала в себе лучшее из нее и усовершенствовала приобретенные возможности оной. В ней используются атомарные операции.
Плюсы:
- база CVS,
- атомарные операции,
- довольно дешевые операции с кодом,
- плагины для IDE,
- исключение пиринговой модели.
Минусы:
- возникающие ошибки при переименовании файлов и каталогов,
- несовершенный набор команд для плодотворной работы с хранилищем данных,
- «заторможенность».
Mercurial (Hg)
Эта кроссплатформенная распределенная система появилась вместе с Git. Меркуриал должен был стать альтернативой Гиту при разработке ядра Линукса, но в итоге упор сделали не на него. Со временем он все же приобрел, что ли, культовый статус в среде разработчиков.
Mercurial написан на языке программирования Python. Но элементы, сделанные на C, в нем все-таки присутствуют. Система децентрализована.
Плюсы:
- легкое освоение (если сравнивать с Git),
- распределенная модель,
- обширная документация.
Минусы:
- нельзя провести слияние двух родительских веток,
- плагины вместо скриптов,
- ограниченное количество возможностей.