Я столкнулся со следующей проблемой, и у меня нет ответа на нее:
У нас есть репо, которое было клонировано из SVN репо. Проект, хранящийся в этом репо, представляет собой что-то вроде программного обеспечения платформы, которое используется различными проектами. Структура репо следующая:
platform
|- core
|- additional
Структура репо не может быть изменена по некоторым причинам. Оба, ядро
и дополнительные
содержат данные, которые являются частью этой платформы
.
Если проект хочет использовать платформу и добавить некоторые функции, он создает новая папка в additional
, содержащая источники, и добавляет заголовок для этой функциональности в additional / includes
В настоящее время мы просто разветвляем новые проекты из master
, и все идет в то же репо. Это приводит к инфляции филиалов, и мое (центральное) репо растет все больше и больше, потому что все коммиты, сделанные в отдельных проектах, переходят в центральное репо (мои коллеги привыкли к SVN, поэтому они подталкивают
почти после каждого коммита
- на всякий случай ...).
Сначала я имел в виду подмодули : сохранить платформу
в качестве подмодуля под суперпроект (называется super
), а затем перейдите в super / platform / additional / mystuff
, создайте там исходники и добавьте их в super
.Но это явно не работает, потому что файлы находятся внутри подмодуля платформы
.
Есть ли лучший способ организовать мое репо, чтобы:
платформы
платформу
don ' t испортить репо платформы
? РЕДАКТИРОВАТЬ 1 : Сильно связанные подмодули git покрывают довольно немного моего сценария: тесно связанные вещи, я единственный, кто знает немного больше, чем абсолютные основы git: «Большинство разработчиков имеют лишь очень поверхностные знания о git». Идеальное совпадение!
РЕДАКТИРОВАТЬ 2 : Хотя ответ Майкла выглядит многообещающим, я думаю, что он слишком сложен для использования. Я ищу действительно простую вещь, которая не требует такого большого взаимодействия.