Всем привет, вот задался таким вопросом. Есть некий открытый проект, назовем его Апстрим. Он лежит в гите в виде здоровенной монорепы:
А
Б
В
....
Э
Ю
Я
,
где по сути основной проект - это Б, а остальное - проекты, от него зависящие, но не обязательные (пример - LLVM).
Я делаю свой проект П, который не является форком проекта Апстрим, но в нём есть часть из него.
Х
Б
Й
То есть я хочу как бы форкнуться от проекта Апстрим, запомнить момент форка, дальше разрабатывать свой П и периодически синкаться с Апстрим.
Проблема: я буду активно вносить изменения в часть Б, но не хочу тащить всё остальное из Апстрим с собой.
В одну сторону это просто, я бы просто брал патчи для Б из П и вносил их в Апстрим, когда надо, в другую сторону проблема, например, я хочу обновить Б у себя до новой мажорной версии из Апстрим, скажем с 9 до 10, что делать? Подготовить мега-патч из Апстрим 9->10 и наложить его в П? Но тогда потеряется вся история коммитов из Апстрим.
Как вы решаете такие проблемы?