Подтвердить что ты не робот

Использует ли центральный репозиторий против цели GIT?

Если вы находитесь в корпоративной среде со многими людьми, работающими над конкретным приложением, идет ли речь о зерне системы распределенного контроля версий иметь официальный центральный репозиторий?

Иногда мне сложно понять концепцию системы управления распределенными версиями, например GIT в корпоративной среде. Если бы у вас не было центрального хранилища, не было бы ли PITA выяснять, у кого была последняя обновленная версия, из которой у кого есть функция x или ошибка, которую нужно всем захватить, и т.д. И т.д.

Преодолевает ли цель GIT использовать ее аналогично SVN, с центральным хранилищем, от которого все толкают/тянут? Каждый раз, когда я думаю об этом, я чувствую, что мне не хватает всего.

Может ли кто-нибудь просветить меня?

4b9b3361

Ответ 1

Не совсем. DCVS позволяет больше свободы в том, как взаимодействовать между разработчиками без привлечения центрального репозитория. Официальный репозиторий является официальным по консенсусу. В Linux также есть центральный репозиторий, из которого создаются "официальные" версии ядра, но нет никакой физической разницы между центральными, "официальными", репозитариями и клиентскими репозиториями, как это происходит в централизованном VCS.

Ответ 2

Вы, вероятно, думаете по линиям этой диаграммы:

alt text

Это, вероятно, будет выглядеть как хаос, исходящий из CVCS. "Нам нужен порядок", я слышал, вы говорите?

Если у вас не было центрального репозитория, не было бы ли PITA выяснять, у кого была последняя обновленная версия, у кого есть функция x или ошибка, которую нужно всем захватить, и т.д. и т.д..

Да. В отличие от CVCS Theres действительно не "последняя версия". Если у вас нет центрального местоположения, вы не сразу узнаете, стоит ли видеть Сью, Джо или Еву для последней версии. Центральное расположение помогает выяснить, что такое последняя "стабильная" версия.

Что-то еще более похоже:

alt text

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

Представьте себе менеджера проекта, который управляет несколькими командами разработчиков, каждая команда может иметь "центральный" репозиторий, на который они нажимают. Каждую неделю руководитель проекта может вытаскивать изменения из каждой команды в свой "центральный" репозиторий, объединять их и выталкивать обратно в "центральные" репозитории своих команд.

Это, наверное, не очень хороший пример (я все еще не могу обойти эту проблему), но это всего лишь один менеджер проекта. Бросьте еще несколько проектов/менеджеров и команду QA, тогда вы можете увидеть, откуда я родом.

-

Ответ 3

При распределенном контроле источника центральный "официальный" репозиторий устанавливается с помощью политики инструментария, а не источника.

Ответ 4

Определенно не победить цель Git.

Преимущество использования Git или любого другого DVCS, даже когда есть центральный, официальный репозиторий, по-прежнему контролирует децентрализацию источника. То есть вы можете взять свою копию репозитория, работать над своим кодом и совершать локальную фиксацию каждые несколько минут, если вам нужно. Вам не нужно беспокоиться о том, что коммиты находятся на полуразработанном коде, который разбивает сборку, все локально. (И очень быстро.)

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

Я не думаю, что вы можете недооценить преимущество разделения идеи "private" коммитов и "публичных" нажатий. Это позволяет отслеживать изменения, несмотря на то, что вы единственный, кто может воспользоваться такой малой детализацией.

Ответ 5

Если вы проверите это Презентация Git, (слайд 475 и далее), модель Центрального репозитория отлично поддерживается Git.

Вы можете заставить любого желающего git push его разработки сначала сделать git fetch + git merge, а затем нажать.

Это не полностью разрушает цель Git и гарантирует, что все синхронизируются друг с другом.

Разница с официальным репозиторием Linus упомянутым JesperE, заключается в том, что он управляется другим рабочим процессом, а именно моделью "Диктатор и лейтенанты", где записывается доступ (push) предоставляется только для Linus, и чтение предоставляется для всех.

Теперь: "это побеждает точку DVC"?

Нет, у вас все еще есть распределенные репозитории, по одному для каждого разработчика, и они могут извлекать/объединять между своими собственными репозиториями в соответствии с их собственным рабочим процессом внутренней команды.
Тем не менее, если они хотят внести свой вклад в центральное репо, они должны быть первыми обновлены с последней историей этого репозитория.

Ответ 6

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

Я думаю, что с небольшой дисциплиной модель работает очень хорошо. В этой статье хорошо объясняются различные модели, которые вы могли бы принять

Ответ 7

DVCS, как Git, не заставит вас использовать центральный репозиторий. Конечно, можно объявить один репозиторий "центральным" или "официальным" или каким-либо другим, а в контексте компании центральный репозиторий имеет смысл - если не для разработки, то, по крайней мере, для целей резервного копирования.