DVCS — распределённые системы контроля версий (Distributed/Decentralized Version Control System). Вместо «распределённых» можно также использовать термин «децентрализованные», а вместо «системы контроля версий» — «системы управления версиями» (СУВ).

Содержание

Отличительные особенности

Основная идея — вместо необходимости наличия центрального репозитория, хранящего историю изменений (как, например, в CVS и Subversion), копия репозитория содержится в каждой рабочей копии, и поэтому разработчики могут обмениваться изменениями напрямую.

В связи с этим сразу возникает необходимость удобной поддержки слияний, так как потенциально возникает сильное ветвление, и с ним нужно что-то делать. Это удобство успешно предоставляется существующими системами, в отличие от, например, Subversion'а (являющегося централизованной СУВ), в которой ветвиться достаточно просто и удобно, а вот сливать изменения — тяжело.

Первое отличие, замечаемое при переходе на DVCS с централизованных систем — команды «update» и «commit» извлекают/фиксируют изменения не из центрального репозитория, а из локального, и появляется ещё две команды — «pull» и «push», предназначенные для приёма/передачи изменений из удалённых репозиториев.

Ещё одно важное отличие — DVCS понимают репозиторий как «цельный проект», и при управлении версиями не делят его на отдельные файлы и каталоги — то есть, если кто-то сделал изменение в другом файле параллельно с вами — ваша правка всё равно создаст отдельную ветку, и их придётся объединять. Хотя объединение, конечно, пройдёт полностью автоматически и безболезненно. Поэтому обычно не рекомендуется поддерживать несколько проектов в одном DVCS-репозитории.

По сути, никто не мешает использовать DVCS в «централизованном стиле», имея сервер и постоянно синхронизируя локальный репозиторий с ним, но при этом всё равно возможен и прямой обмен историей между разными разработчиками.

Интересный факт: все три наиболее популярные DVCS (Git, Mercurial и Bazaar) поддерживают работу с Subversion-репозиториями, причём делают это быстрее, чем сам клиент Subversion, и быстрее всех работает Bazaar.

Известные DVCS

Ниже перечислены наиболее известные на данный момент свободные DVCS.

Самые популярные и активно развиваемые сейчас — в первую очередь, Git, Mercurial и Bazaar, их активно догоняющий.

GNU Arch не развивается, хотя поддерживается.

Git

Интересные факты:

Mercurial

Интересные факты:

Bazaar

Интересные факты:

Darcs

Интересные факты:

Monotone

Интересные факты:

GNU Arch

Интересные факты:

Ссылки


Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».

Репликация: База Знаний «Заказных Информ Систем» → «DVCS»