Git Reference Общий каталог / репо - PullRequest
1 голос
/ 19 апреля 2010

Макет проекта:

/project_a
   /shared
/project_b
   /shared
/shared

project_a и project_b должны содержать общую папку. В svn мы использовали svn: externalsand, который работал нормально, поскольку svn может ссылаться на поддиректории (также с относительными путями). Тем не менее, мы перешли на git и, похоже, не поддерживаем проверку subdirs.

Наше решение теперь состоит в том, чтобы поместить project_a, project_b и общий доступ в разные репозитории git и использовать подмодули git в project_a и project_b. Однако это выглядит намного сложнее, чем одно монолитное svn репо с svn: externals. Как правильно обрабатывать общие элементы в git?

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

После внесения изменений в общий файл мне необходимо:

  1. Передать изменения в общий доступ
  2. Нажмите на изменение доли
  3. Добавьте общий каталог снова в родительский каталог
  4. Нажмите родительский каталог

По сравнению с одним коммитом в svn, это выглядит намного сложнее. И пропущение одного из этих шагов приводит к огромному беспорядку версий. Я что-то здесь упускаю?

1 Ответ

1 голос
/ 19 апреля 2010

Подмодули - правильный ответ.

Тот факт, что вы не сохраняете монолитный подход SVN, является в значительной степени разработанным с DVCS (где вы помечаете и ссылаетесь на хранилище как all ).

Это позволяет вам ссылаться на точную конфигурацию (см. Подмодули истинной природы ), то есть вы всегда будете ссылаться на точную ссылку SHA1 (в отличие от svn external , где вы rae не обязан указывать номер редакции).

...