Как выполнить "repo init" в отключенной системе?

Я отразил хранилище с

repo init -u <uri of manifest> --mirror
repo sync

и скопировал его (через usb) в систему, отключенную от Интернета, вместе со сценарием репозитория и репозиторием клонов репо из https://gerrit.googlesource.com/git-repo/clone.bundle.

Теперь я хочу создать новый клиент из зеркала, но когда я запускаю команду.

repo init -u <uri of manifest on mirror>

я получаю следующую ошибку.

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno -2] Name or service not known

Итак, у меня есть clone.bundle, но я не могу убедить репо использовать его.

Какие-либо предложения?

2 ответа

Решение

Существует вариант, который, как представляется, полностью недокументирован в Интернете для репо. Это --repo-url, который позволяет вам переориентироваться, когда репо ищет последнюю версию самого себя.

Вот что я сделал:

Я сохранил пакет в моем доме как git-repo-clone.bundle

repo init -u < uri of manifest on mirror > --repo-url ~/git-repo-clone.bundle

Я узнал об этом, прочитав сам скрипт репо, и подумал, что поделюсь.

Есть возможность игнорировать комплект клонов.

repo init -u <your-manifest-mirror-url> --no-clone-bundle

Кажется, что repo инструмент, который был установлен в вашей системе, пришел из git-repo репо из проекта Google Gerrit. Эта проблема может быть легко решена с помощью чего-то похожего на ответ OwainD, но только с использованием зеркала без необходимости делать еще одно репо.

repo init -u <mirror uri>/platform/manifest.git --repo-url <mirror uri>/tools/repo.git

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

Другие вопросы по тегам