Использование git для проекта со многими, много репозиториев - программирование
Подтвердить что ты не робот

Использование git для проекта со многими, много репозиториев

Проект Plone состоит из 192 различных репозиториев: https://github.com/plone/

Во время разработки иногда необходимо коснуться 2 или 4 или 10 различных репозиториев, чтобы исправить ошибку или реализовать функцию. Было бы здорово, если бы все это могло быть разветвлено вместе и объединено вместе (например, проблема закрытия закрытия запроса X, содержащая обязательства для 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

Другим инструментом, который звучит уместно, является Joey Hess mr:

Команда mr (1) может проверять, обновлять или выполнять другие действия в наборе репозиториев, как если бы они были одним объединенным репозиторием.

http://kitenet.net/~joey/code/mr/ (я был бы обеспокоен тем, что это приведет к 192 различным ветвям, которые имеют одно и то же имя, вместо 1 ветвь, которая связывает все репозитории.)

Этот вопрос имеет значение: Кто-нибудь действительно использует git супер/подпроекты? В одном из ответов говорится:

наш проект (битвейвер, система управления контентом) является высоко модульным система с почти 160 репозиториями - http://github.com/bitweaver/".

Это похоже на наш случай. Он цитирует "суровые ограничения" с подмодулями и рекомендует использовать ртуть. Похоже, что mr может помочь справиться с ними ( "выполнить команды git для всех каталогов в супер-репо" ).

4b9b3361

Ответ 1

Я бы использовал подмодули git в "все" репо. Кроме того, рассмотрите "git slave", если вы найдете работу, охватывающую многие репозитории. Это может сэкономить много усилий.

Ответ 2

Почему бы не взглянуть на инструмент репо, который использовался андроидом?