Одним словом, чтобы подвести итог Git и другие DVCS - PullRequest
3 голосов
/ 25 августа 2011

Когда я знакомлюсь с Git, я все больше и больше чувствую, что:

Git и другие DVCS переходят на шаг дальше, чем традиционные централизованные VCS в том, что они не только проверяют файлы ввопрос, но также и вся версия базы данных.

Я думаю, что это основное различие между DVCS и CVCS, а также основной опорой всех других преимуществ DVCS.

Или, скажем так:

Несколько локальных VCS + централизованное резервное копирование = DVCS.

Изменил приведенное выше уравнение на следующее:

Несколько локальных клонов + Централизованное резервное копирование = DVCS.

Верно?

Ответы [ 4 ]

4 голосов
/ 25 августа 2011

То, что вы описываете, является самой природой распределенной системы: весь репозиторий клонирован (с его полной историей).

DVCS смешивает управление версиями (ветвление и метки) с публикацией (push / pull в / из удаленного репо)

Но есть другие характеристики , которые отличают DVCS от CVCS.
Особенно в условиях рабочего процесса . Смотрите " Опишите ваш рабочий процесс использования контроля версий (VCS или DVCS) "

И не забывайте, что DVCS не имеет авторизации или аутентификации . Тем не менее, существуют решения для их обеспечения, например, apache2-authn-redmine в сочетании с Redmine Project Management System

В OP smwikipedia добавлено:

Несколько локальных VCS + централизованное резервное копирование = DVCS.

Я не думаю, что вы можете суммировать таким образом, особенно учитывая, что было бы трудно эмулировать функции push / pull, поскольку большинство VCS (SVN, ClearCase, Perforce, ...) не имеют «локального» репо, только локальные рабочие пространства и сильно зависят от их центрального репо.

0 голосов
/ 25 августа 2011

За исключением централизованного резервного копирования, полностью необязательного. «Центральный» репо - это социальное, а не техническое различие. Вы действительно не проверяете «одну» версию базы данных. Скорее, любой данный клон является базой данных версий.

Мое однострочное описание:

Столько веток, сколько вы хотите, в любом количестве репозиториев, которые вы хотите поделиться, с кем, как и с кем вы хотите.

0 голосов
/ 25 августа 2011

Это одно отличие, да. Это позволяет работать в автономном режиме и распространять изменения позже.

Другим отличием, которое можно видеть как следствие, является управление филиалом. Когда вы работаете (и делаете коммиты) локально, вы создаете новую ветку по своему дизайну. Распространение изменений - это просто слияние веток. Вот почему git (и, конечно, hg и bzr) имеют сильные алгоритмы слияния.

(Мой первый ответ был просто «да». На этот раз я рад ограничению в 30 символов).

0 голосов
/ 25 августа 2011

Если вы действительно хотите поместить это в одну фразу, главное отличие CVCS и DVCS для меня заключается в том, что все работают над своими собственными версиями, обмениваясь своими обновлениями (таким образом, распространяется в DVCS). Если вы не укажете git, он не загрузит все ветки от других участников.

Проверьте gitworkflows для идеи, стоящей за этим, или Bazaar Workflows для очень приятного графического представления возможностей (также можно использовать git или любую другую DVCS, например, ЦВК).

...