Зеркальный репозиторий Eclipse Platform Aggregator с субмодулями - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь отразить модуль агрегатора платформы Eclipse (https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator.git) в хранилище gitlab.

Цель состоит в том, чтобы разместить исходный код (включая подмодули) в локальном репо и создать платформу Eclipse без доступа к исходному коду из внешней сети.

Вот следующие шаги

Попытка 1

git clone --mirror https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator.git #with and without --recurse-submodules
git remote set-url --push origin ${local_repo_url}
git push --mirror # with and without --recurse-submodules=check

При первой попытке содержимое было передано в локальное хранилище. Но при клонировании репозитория из локального репозитория вернулась следующая ошибка

 a) Cloned Metadata       -> Successful
 b) Registered SubModules -> Succesful
 c) Clone Sub Modules     -> Failed

Cloning into 'path/eclipse-platform/eclipse.jdt'...
remote: The project you were looking for could not be found.
fatal: repository 'local_repo_url/jdt/eclipse.jdt.git/' not found
fatal: clone of local_repo/jdt/eclipse.jdt' into submodule 
path 'path/eclipse-platform/eclipse.jdt' failed
Failed to clone 'eclipse.jdt'. Retry scheduled 

Попытка 2

git clone https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator.gi t --recurse-submodules #without mirror
git checkout master
git pull --recurse-submodules
git submodule update
git remote set-url --push origin ${local_repo_url}
git push --mirror --recurse-submodules=check

Но клонирование из локального репозитория завершилось неудачно с той же ошибкой (как в Попытке 1). Будем весьма благодарны за любую помощь в отражении этого репо вместе с подмодулями Gitab Repo

Спасибо и С уважением Bipin.

1 Ответ

0 голосов
/ 25 мая 2019

По умолчанию при клонировании подмодуля используется URL-адрес, используемый в файле .gitmodules.Поскольку этот файл все тот же, что и в репозитории, который вы зеркалируете, Git попытается получить эти данные с исходного удаленного пульта.

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

Что касается решения проблемы клонирования, самый простой способ сделать это - использовать URLпереписать.Поэтому, если вы хотите использовать https://mirror.example.org/foo/ в качестве корневого каталога вместо https://git.eclipse.org/r/platform/, вы должны выполнить следующую команду:

git config --global "url.https://mirror.example.org/foo/.insteadOf" https://git.eclipse.org/r/platform/

Обратите внимание, что вы не можете сделать этот параметр конфигурации локальным для репозитория, потому что когдавы клонируете подмодуль, настройки родительского репозитория в основном игнорируются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...