У меня есть проект, который нужно разделить на два репозитория: набор общих моделей и симуляцию на основе этих моделей с дополнительным кодом. В конечном счете, может быть несколько симуляций с использованием одного и того же набора моделей, поэтому наличие их в отдельном хранилище является определенным требованием. Очевидным решением является наличие общих моделей в качестве подмодуля моделирования.
К сожалению, два репозитория будут очень сильно связаны. Люди будут очень часто добавлять что-то к своим общим моделям, а затем сразу использовать его в симуляции. Я предполагаю, что это вызовет много головных болей в процессе интеграции репозитория моделирования. Чтобы объединить изменения со многими разработчиками в симуляции, интегратору придется выполнять параллельные слияния в подмодуле общих моделей. С другой стороны, это также делает необходимым использование подмодулей - симуляция действительно должна знать, какую версию общих моделей она должна использовать.
Проект обрабатывается значительным количеством людей. У большинства разработчиков есть только очень поверхностное знание git: они добавляют файлы, фиксируют и извлекают из источника много, и, надеюсь, имеют dev и стабильную ветвь. Интегратор, естественно, узнал немного больше, но что-то, связанное с подмодулями, наверняка будет для него новым. Добавленный бонус: я собираюсь взять месяц отпуска, так что я не смогу выпустить огонь. Результатом является то, что существует множество стимулов для того, чтобы рабочий процесс сильно затруднялся, и чтобы свести к минимуму различия между людьми предыдущих рабочих процессов.
Итак, мои вопросы: буду ли я сожалеть о том, что мы будем использовать подмодули для этого? (Есть ли лучшая идея?) Какие ошибки я могу ожидать от людей, поэтому я могу заранее предупредить их? Есть ли хорошие стратегии рабочего процесса, которые следует иметь в виду?
Изменить: я просто натолкнулся на git slave, что также может стоить взглянуть в этом контексте. Пока не может дать хорошую оценку возможностей/ограничений, выходящих за рамки его веб-сайта.