Сравнительный анализ Git, SVN, Mercurial

Каждый бизнесмен и программист знает эти три буквы: VCS. Нет, это не то слово, о котором вы подумали, написанное на английской раскладке. Под данной аббревиатурой скрывается ПО, которое облегчает работу с динамической информацией — система управления версиями (система контроля версий; в оригинале — Version Control System). 
Не следует путать с CVS (Concurrent Versions System — система управления одновременными (параллельными) версиями), централизованной системой. 

Зачем нужна система контроля версий

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

Плюсы и минусы трех популярных систем управления версиями

Существуют разные системы контроля версий. Давайте их сравним. Для этого возьмем три наиболее популярные: Git, SVN, Mercurial.

Git

Git — это распределенная система контроля. Она была создана, чтобы управлять процессом создания ядра Linux. Подход к решению проблем, который положен в ее основу, очень сильно отличается от CVS и SVN. Главной целью создателей было достижение впечатляющего быстродействия. Собственно, пользователи Линукса, операционной системы, под которую Гит и был «заточен» изначально, могут заметить это самое достижение во время пользования преимуществами любимой «операционки». 
Также Git хорошо себя проявляет на macOS, ОС из семейства Unix. 
Плюсы:
  1. быстродействие;
  2. распределенная система, пиринговая модель;
  3. простые и дешевые операции с кодом;
  4. доступная история разработки (в полном объеме) в оффлайн-режиме.
  5. В общем, «хейтеры» CVS/SVN оценят по достоинству.
Минусы:
  1. трудно перестроиться тем, кто раньше работал с SVN;
  2. поддержка Windows ограничена. 

SVN

Собственно, SVN — это бесплатная система с открытым исходным кодом. Изначально являлась альтернативой CVS: она вобрала в себе лучшее из нее и усовершенствовала приобретенные возможности оной. В ней используются атомарные операции. 
Плюсы: 
  1. база CVS,
  2. атомарные операции,
  3. довольно дешевые операции с кодом,
  4. плагины для IDE,
  5. исключение пиринговой модели. 
Минусы:
  1. возникающие ошибки при переименовании файлов и каталогов,
  2. несовершенный набор команд для плодотворной работы с хранилищем данных,
  3. «заторможенность».

Mercurial (Hg)

Эта кроссплатформенная распределенная система появилась вместе с Git. Меркуриал должен был стать альтернативой Гиту при разработке ядра Линукса, но в итоге упор сделали не на него. Со временем он все же приобрел, что ли, культовый статус в среде разработчиков.
Mercurial написан на языке программирования Python. Но элементы, сделанные на C, в нем все-таки присутствуют. Система децентрализована. 
Плюсы:
  1. легкое освоение (если сравнивать с Git),
  2. распределенная модель,
  3. обширная документация.
Минусы:
  1. нельзя провести слияние двух родительских веток,
  2. плагины вместо скриптов,
  3. ограниченное количество возможностей. 

Екатерина Константинова