Я работаю над рефакторингом большой (в основном Perl) кодовой базы. Вместо того, чтобы помещать все в один гигантский репозиторий git, я бы хотел сгруппировать связанные модули и их тесты в отдельные репозитории git и иметь репозитории, структурированные как дистрибутивы CPAN.
Одна из проблем заключается в том, что если каждый репозиторий имеет отдельное дерево распространения CPAN, то использование подмодулей кажется неудобным, поскольку (в целях тестирования) мы действительно хотим включить «lib» каждого подмодуля в тесты. Это незначительная проблема, и я уже знаю о различных простых обходных путях («используйте lib...» в тестах), но я хотел бы знать, что другие разработчики делают в подобных ситуациях и что считается передовым опытом.
Более важным вопросом является то, как бороться с ветвлением. Если создается новая ветка подмодуля, а затем обновляется ветка, как я могу протестировать код в суперрепозиториях, которые зависят от него, для этой ветки? (Возможно, мне не обязательно захотеть вносить изменения в суперрепозитории, просто убедитесь, что изменения в подмодуле ничего не сломали.)
Аналогично, существуют ли утилиты, которые могут отслеживать зависимости между репозиториями git, чтобы я мог определить, какие суперрепозитории нуждаются в тестировании для ветки после изменения зависимости?