2012-02-03 5 views
8

У меня есть коллекция репозиториев git, которые независимо версируются, но связаны друг с другом. Например, при добавлении функции мне может потребоваться добавить функциональность в общую библиотеку, а затем расширить приложение или службу, чтобы воспользоваться этой функциональностью.Можно ли когерентно управлять несколькими репозиториями?

В настоящее время мне нужно будет создать ветку на каждом из хранилищ, которые я касаюсь, работая над этой функцией. Однако я хотел бы упростить процесс, разветвив и объединив сразу несколько репозиториев (чтобы уменьшить вероятность забыть о ветвлении или совершить/слить в один репозиторий, а не другой).

Есть ли простой способ разветвления и объединения нескольких репозиториев за один раз или эта задача лучше подходит для коллекции вспомогательных скриптов? Если последний, есть ли какие-либо доступные скрипты, которые уже выполняют это?

+2

Возможный дубликат [Управление множеством репозиториев git] (http://stackoverflow.com/questions/816619/managing-many-git-repositories) –

ответ

7

Существует не встроенный способ одновременного обращения к нескольким хранилищам, и если вы думаете о распределенной природе git, действительно существует не что иное, как социальное соглашение, которое может определить. (Подумайте, что, если кто-то вытащит вас из одного хранилища, а другой пульт для второго - можете ли вы иметь такую ​​связность?)

Возможно, вы найдете инструмент, например mr, который работает с несколькими хранилищами в то же время, полезен ,

Если у вас действительно есть вещи, которые тесно связаны, я бы посоветовал вам поместить их в один репозиторий. Таким образом, вы не можете забыть какие-либо шаги, потому что они происходят в одной атомной операции.

Если ваш код на самом деле не плотно связан вместе, то откажитесь от понятия «обязательно ветви в одно и то же время», и вы будете счастливее.

+1

+1 mr довольно классный, хотя он не слишком хорошо работает на Windows – stijn

4

Вы можете использовать инструмент прямого РЕПО: https://gerrit.googlesource.com/git-repo/

  • установить ту же ветвь над несколькими проектами
  • просмотр состояния нескольких хранилищ (филиалов, необъединенные фиксаций) с помощью одной команды
  • управлять набором хранилищ (клон, синхронизация и т.д.) с файлами манифеста
  • много других интересных вещей
+0

ссылка мертва – xenoterracide

+0

Я обновил ссылку. –

2

lso, взгляните на: https://github.com/fabioz/mu-repo - это инструмент, такой как mr и repo, поскольку я не мог получить один из тех, кто работал, как мне было нужно.

0

Как идея. Я не пробовал это сам, но я наткнулся на эту функцию некоторое время назад. Попробуйте добавить все разыскиваемые репозитории как подмодуль в новое «корневом» хранилище и использовать следующую команду

git submodule foreach --recursive <command> 

Вы можете обратиться за помощью для этого и как бороться с подмодулями. Вы можете использовать любую команду, которую хотите. git и non-git.

0

Android repo tool управляет созданием ветвей функций через несколько репозиториев. Однако команда repo upload может публиковать только в обзоре кода Gerrit.

Если вы используете обычный менеджер хранилища Git, такой как GitHub или GitLab, repo upload не будет работать; вам нужна несуществующая команда repo push.Я реализовал repo push в the Wave Computing fork of repo. Мы используем его в производстве.

Смежные вопросы