Хорошей идеей будет иметь какой-то центральный репозиторий, потому что он позволит вам обмениваться кодом, а также иметь ветку где-нибудь, из которой вы сможете напрямую генерировать свои сборки / экспортировать свои снимки. Этот сервер, вероятно, будет иметь более одной ветви, одна из которых считается ветвью «магистральной». Любые предыдущие выпуски будут иметь свою собственную ветвь, и в зависимости от иерархии вашей команды (то есть, если вы разделены на группы, где каждая группа работает над одним аспектом приложения), тогда могут быть ветки, основанные на команде или функции, хотя если вы не работать не так, как надо.
Конечно, поскольку он распространяется, у каждого разработчика также будет свой собственный локальный репозиторий, чтобы все было хорошо и быстро. Или они могут иметь несколько репозиториев, даже. Например, разработчик, который любит работать во время поездок на работу, может иметь репозиторий на своей рабочей станции, а другой - на своем ноутбуке с ветвями на своем ноутбуке, которые «извлечены» из тех, что на его рабочей станции. Это до него. Я предполагаю, что «распределенная» часть делает такие вещи намного проще, потому что вы можете фиксировать и даже ветвиться, находясь вдали от сети.
Если вы переходите с нераспределенной VCS, вы можете просто перейти на ту же модель, что и раньше, потому что DVCS достаточно гибок, чтобы работать таким же образом. В противном случае вы можете просто начать с одного центрального репозитория с несколькими ветвями, и впоследствии всегда легко создать больше репозиториев и веток.
И последнее: вам все еще нужны резервные копии. Тот факт, что разные разработчики имеют копии одного и того же, добавляет избыточность, но это не вместо резервных копий.
DVCS, которую я регулярно использую, это Bazaar. Я также попробовал Mercurial.