Не знаю, где лучше спросить, попробую здесь.
Есть пара десятков проектов (на С++), которые используют общий код. Этот общий код вынесен в библиотеку. Исторически сложилось, что таких библиотек две. Критерий отправки кода в библиотеку — возможность переиспользования. Т.е. в библиотеки сидят драйвера различных устройств, разбор каких-то протоколов, работа с железом, какие-то общие функции.
В каждом проекте используются нужные там файлы из этих двух библиотек — просто добавляются в билд-скрипт проекта (или иногда для какой-то сложной подсистемы пишется свой билд-скрипт и включается в билд-скрипты проектов). В силу специфики сборка статических библиотек особого смысла не имеет — разные компиляторы, разные флаги компиляции.
Каждая библиотека живет в своем меркуриаловском репе.
Вопрос — как лучше это дело развивать дальше?
* Слить оба репа в один — структура папок там разная, по идее особых проблем не будет. Из двух куч получится одна большая, управление зависимостями станет попроще. История будет читаться похуже
* Выделить отдельные функциональные части в свои репозитории — при этом вместо двух репов появится с полсотни, зависимости усложнятся.
* Оставить все как есть