How to “repo init” on a disconnected system?

2019-03-15 17:51发布

I have mirrored a repository with

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

and copied it (by usb) to a system disconnected from the internet along with the repo script and the repo clone bundle repository from https://gerrit.googlesource.com/git-repo/clone.bundle.

I now want to create new client from the mirror, but when I run the command.

repo init -u <uri of manifest on mirror>

i get the following error.

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

So I have the clone.bundle but have no way to persuade repo to use it.

Any suggestions?

标签: repository
2条回答
再贱就再见
2楼-- · 2019-03-15 18:26

There is an option, that appears to be totaly undocumented on the internet for repo. It is --repo-url which allows you to overide where repo looks for the latest version of itself.

This is what I did:

I had the bundle saved in my home as git-repo-clone.bundle

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

I found this out by reading the repo script itself, and thought I would share.

查看更多
做自己的国王
3楼-- · 2019-03-15 18:43

It seems that the repo tool that was installed on your system came from the git-repo repo from Google's Gerrit project. This issue can be easily resolved with by doing something similar to OwainD's response, but only using the mirror without needing to pull in another repo.

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

This resolved the issue for me as well and kept me from needing to grab another repository and transfer it to a non-connected machine.

查看更多
登录 后发表回答