2013-07-11 7 views
2

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

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

Team-repo 1: folderA, folderB, folderD 
Team-repo 2: folderC, folderD 
-->Shared repo (repo1 + repo2): folderA, folderB, folderC, folderD 

В этом примере должна быть объединена папка D. Возможно ли в git реализовать такую ​​концепцию?

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

ответ

1

Вам понадобится каждая «папка» в своем собственном репозитории (по крайней мере, каждая независимая папка).

Затем вы используете понятие подмодулей (http://git-scm.com/book/en/Git-Tools-Submodules)

  • "модули" хранилище: RepoA, RepoB, RepoC, RepoD
  • "Проект" репозиторий, с помощью git submodule: TEAM1, Team 2

Если вы посмотрите на предоставленный мной URL-адрес, описан рабочий процесс.

+0

Я никогда не был доволен субмодулями, которые не являются довольно статичными сторонними библиотеками. накладные расходы на обновление нескольких быстро изменяющихся подмодулей являются безумными imho. – mnagel

+0

Правда, все зависит от процесса и стабильности: я использовал его для работы над «одним модулем», сохраняя при этом другую консистенцию, а затем обновляю другие, так работает, если ваши API достаточно стабильны – Bruce

+0

Но фиксация подмодуля не обновлять удаленный репозиторий (суперпроект). Так что это было бы слишком сложно, на мой взгляд. Так есть ли другой шанс реализовать такой сценарий? – user2451418