У нас есть следующая настройка: три приложения, которые похожи друг на друга, с общим кодом, извлеченным в фреймворк. Каждое приложение управляется в собственном репозитории git и включает фреймворк в виде подмодуля git.
Проблема в том, что приложения теперь разрабатываются параллельно с добавлением новых функций в структуру, которые другим приложениям не требуется поддерживать сразу. В настоящее время у нас есть разные ветки фреймворка для всех приложений. Одно приложение использует основную ветвь фреймворка, потому что в большинстве случаев новые функции были впервые представлены в этом приложении.
Фреймворк
Когда в appB вводится новая функция, требующая изменений в структуре, эти изменения были внесены в ветку appB. Если эти изменения впоследствии потребовались в приложении A, ветка appB была объединена с мастером.Это означает, что все изменения в appB нужно было объединить в master.
Эта система работала, но имела некоторые недостатки
В настоящее время мы ищем новый рабочий процесс. Я думал о наличии следующих веток
Итак, для каждого приложения одна ветка и главная ветка, которая включает в себя все изменения. При разработке новых функций необходимо создать ветвь функций, а затем применить ее к основной, а также ко всем ветвям приложения, эта функция необходима сразу. Другие приложения могут объединить ветку функций, когда им понадобится эта функция позже.
Я вижу следующие проблемы с этим
Является ли мой намеченный способ лучшим способом добиться этого или мне следует полностью переосмыслить свою стратегию?