Проект Plone состоит из 192 различных репо: https://github.com/plone/
Во время разработки иногда нужно коснуться 2, 4 или 10 различных репозиториев, чтобы исправить ошибку или реализовать функцию. Было бы здорово, если бы все они могли быть разветвлены и объединены вместе (например, закрывающий запрос IssueX , содержащий коммиты repo1 , repo2 и repo3 ).
Релизы требуют, чтобы весь набор репо был разветвлен и помечен вместе.
Pre-git, релиз был определен файлом, в котором перечислены номера ревизий svn всех модулей, составляющих релиз. Git дает нам более упорядоченный способ работы?
На первый взгляд кажется, что «Суперпроекты» могут быть применимы:
Вы можете более конкретно определить отношения между
проекты с тегами и ветками в суперпроектах
http://progit.org/book/ch6-6.html#superprojects «Git / Submodules and Superprojects», кажется, подтверждает это, но остается расплывчатым (не обращается к тегам или ветвям). http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects
Еще один инструмент, который звучит актуально - это Джои Хесс mr
:
Команда mr (1) может извлекать, обновлять или выполнять другие действия в наборе
хранилищ, как если бы они были одним объединенным хранилищем.
http://kitenet.net/~joey/code/mr/ (Меня беспокоит, что это приведет к 192 разным ветвям с одинаковым именем вместо 1 ветки, которая связывает все репо.)
Этот вопрос выглядит актуально: Кто-нибудь действительно использует git super / subprojects? Один ответ гласит:
наш проект (bitweaver, система управления контентом) является высоко модульным
система с почти 160 репозиториями - http: // github.com/bitweaver/ ".
Это похоже на наш случай. Он ссылается на «серьезные ограничения» с подмодулями и рекомендует Mercurial. Похоже, mr
может помочь справиться с ними («выполнить команды git для всех каталогов в супер-репо»).