выберите подмодуль git в зависимости от целевого репо - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть проект, который я отправляю в 2 разных репозитория, используя в файле .git/config следующее:

    [remote "origin"]
        url = the_main_repo
        fetch = +refs/heads/*:refs/remotes/origin/*
    [remote "other_repo"]
        url = the_other_repo

Сам проект также имеет подмодуль. Мой .gitmodules файл выглядит так:

    [submodule "the_submodule"]
        path = the_submodule
        url = the_submodule_repo_url

Я бы хотел, чтобы the_submodule_repo_url отличался в зависимости от того, из какого репо я берусь, чтобы я мог получить субмодуль репо из одного и того же источника (это разные серверы в моей сети).

Как этого добиться?

1 Ответ

0 голосов
/ 12 апреля 2019

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

Установите один URL для субмодуля на тот же хост, что и на одном из пультов. Для другого удаленного запуска

git -c url.$the_other_submodule_repo.insteadOf the_submodule_repo_url fetch/push/pull other_repo

Создайте сценарий оболочки, псевдоним функции или git для упрощения его вызова.

...