如何下载repo 源码镜像仓库

Which system do you use? Android, Ubuntu, OOWOW or others?

android

Which version of system do you use? Please provide the version of the system here:

android9.0

Please describe your issue below:

我想下载repo源码的镜像仓库,进行代码多人协作开发管理,但是下载不成功,请问如何解决?

我在下面加了–mirror这个参数,但是克隆不了repo镜像仓库
repo init -u GitHub - khadas/android_manifest: AOSP for Khadas VIMs & Edges -b khadas-vim3-p-64bit --mirror

你好,贴下你下载的报错或者失败的log信息

gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$ …/…/…/repo/repo init -u GitHub - khadas/android_manifest: AOSP for Khadas VIMs & Edges -b khadas-vim3-p-64bit --mirror
Downloading Repo source from /home/gitolite/repo/.git
remote: 对象计数中: 7426, 完成.
remote: 压缩对象中: 100% (2085/2085), 完成.
remote: Total 7426 (delta 5267), reused 7426 (delta 5267)

warning: ‘refs/heads/master’ is not signed; falling back to signed release ‘v2.9’

Downloading manifest from GitHub - khadas/android_manifest: AOSP for Khadas VIMs & Edges
remote: Enumerating objects: 549, done.
remote: Counting objects: 100% (43/43), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 549 (delta 39), reused 34 (delta 32), pack-reused 506 (from 2)
接收对象中: 100% (549/549), 925.74 KiB | 440.00 KiB/s, 完成.
处理 delta 中: 100% (194/194), 完成.
fatal: manifest ‘default.xml’ not available
fatal: refusing to mirror /home/gitolite/repo/.git

gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$ .repo/repo/repo sync
fatal: error parsing manifest /home/gitolite/repositories/4T_A/a311d-android9.0_khadas_mirror/.repo/manifest.xml: [Errno 2] No such file or directory: ‘/home/gitolite/repositories/4T_A/a311d-android9.0_khadas_mirror/.repo/manifest.xml’
gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$

下面是我命令的步骤

xiong@builder:~/work/test$ repo init -u https://github.com/khadas/android_manifest.git -b khadas-vim3-p-64bit
Downloading Repo source from https://gerrit.googlesource.com/git-repo

... A new version of repo (2.50) is available.
... You should upgrade soon:
    cp /home/xiong/work/test/.repo/repo/repo /home/xiong/bin/repo


Your identity is: Xiong Zhang <<xiong.zhang@wesion.com>>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /home/xiong/work/test
xiong@builder:~/work/test$ 

你这个好像不对

…/…/…/repo/repo init 这个是我们本地的repo,这个没问题,
我要下载的是镜像仓库,进行代码管理,你这个怎么没加–mirror,直接下载客户端的代码没问题

你不加你本地的repo,像我下面的命令执行看看

xiong@builder:~/work/test$ repo init -u https://github.com/khadas/android_manifest.git -b khadas-vim3-p-64bit --mirror
Downloading Repo source from https://gerrit.googlesource.com/git-repo

... A new version of repo (2.50) is available.
... You should upgrade soon:
    cp /home/xiong/work/test/.repo/repo/repo /home/xiong/bin/repo


repo mirror has been initialized in /home/xiong/work/test
xiong@builder:~/work/test$ ll
total 12
drwxrwxr-x  3 xiong xiong 4096  1月 13 09:19 ./
drwxrwxr-x 10 xiong xiong 4096  1月 10 18:40 ../
drwxrwxr-x  5 xiong xiong 4096  1月 13 09:19 .repo/
xiong@builder:~/work/test$ 

会报错
gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$ repo init -u GitHub - khadas/android_manifest: AOSP for Khadas VIMs & Edges -b khadas-vim3-p-64bit --mirror
Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get git-repo - Git at Google
File “/home/gitolite/repositories/4T_A/a311d-android9.0_khadas_mirror/.repo/repo/main.py”, line 94
)
^
SyntaxError: invalid syntax
gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$

更新下repo试试

mkdir -p ~/bin
curl https://Storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

好,修改后没有报错,可以同步了,但很慢,这样有问题吗
gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$ .repo/repo/repo sync

这样没有问题,如果是在国内的话网络会差些
可以用下面这个脚本拉取代码,失败会重新帮你拉取直到成功

#!/bin/bash

repo sync -j10 -c
while [ $? = 1 ]; do
	echo "Sync failed, repeat again:"
	repo sync -j10 -c
done

建议不要用中文的,使用英文的最好,有些编译在中文环境下会出错的

为什么全部的git仓库都在一级目录了?,如下为部分截图,
gitolite@s4342:~/repositories/4T_A/a311d-android9.0_khadas_mirror$ ls -al
总用量 1284
drwxrwxr-x 317 gitolite gitolite 20480 1月 13 13:47 .
drwxrwxrwx 14 root 1001 4096 1月 13 09:42 …
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:47 android_art.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:47 android_bionic.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:47 android_bootable_recovery.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:50 android_build_blueprint.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:50 android_build_kati.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:50 android_build_make.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:50 android_build_soong.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:50 android_compatibility_cdd.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:53 android_dalvik.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:54 android_developers_build.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:54 android_developers_demos.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:54 android_developers_samples_android.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:56 android_development.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:56 android_device_google_atv.git
drwxrwxr-x 7 gitolite gitolite 4096 1月 13 13:57 android_device_khadas.git

请问这个repo镜像仓库在一级目录没问题是吧?

我们没有弄过加–mirror参数的方式,你弄这个的需求是什么

需求是:我想下载repo源码的镜像仓库,进行代码多人协作开发管理

请问要多人代码开发同步,你们是怎么做的?如何做代码管理?有什么好的推荐方式?

我们用的就是repo来管理的,没有用过镜像仓库这种

那你肯定有repo代码服务器啊,这种就是镜像仓库,我们也要下载镜像仓库才能多人协同开发代码

你说的是GitHub吗?没太懂你的意思,我们跟目录的.repo就是用来管理整个项目的,只是代码是上传在GitHub上的

就是你们SDK源码能让我们下载,那肯定有repo代码服务器仓库啊,比如我下载下来的代码,修改后要让其他人员也能同步更新我修改的代码,就要建立repo镜像仓库才行啊。

我们的代码能让你们下载就是.repo\manifests里面那个default.xml文件,你查看下repo的使用方法,你可以把我们的各个仓库上传到你的仓库中,在将default.xml文件里面的

<remote fetch="https://github.com/khadas/" name="github"/>

修改成你的GitHub仓库
或者你可以使用Gerrit来管理代码跟GitHub一样的


你们能下载这个代码的核心就是这个xml文件