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