bho*_*ard 8 git android repository android-manifest android-source
我有一种情况需要构建一组不同版本的Android源代码的静态副本.
简单地做一个repo init -b $version; repo sync
将永远init
需要(需要交互,并且同步将浪费我的跨版本带宽).
我目前的设置是下载一个基本版本(比如1.6_r1),将其复制到一个新文件夹(android-1.6_r2),然后重新运行init
并同步(repo init -b android-1.6_r2; repo sync
).有时同步失败,错误如下:
ndk/build/platforms/android-3/arch-arm/usr/incl
中止
同步工作树:100%(153/153),完成.错误:开发/:平台/开发结账caf83cb2b0ffde1a4cfb7cb258cbe012e283d9e1在android-2.1_r2.1s上重新同步返回FAIL
我发现一些有类似错误的帖子表明这可能是因为repo与文件系统中的"已更改"文件不同步,但我想知道我的错误是否是由repo的鼻子下更改版本引起的.
这是更改存储库版本的正确方法吗?更一般地说,是否有时间/带宽有效的方式将android-1.6_r1
存储库转换为android-1.6_r2
?
(更新:我的初步答案意味着我们可以逐步初始化一个新的仓库,例如1.6_r1到1.6_r2,但是正确的设置应该有一个本地"主镜像"仓库,我们可以将引用指向当我开始一个新的init时,我修改了下面的文字以避免错误的含义.)
而不是复制的,尝试添加--reference=/path/to/main/repo
到您的repo init
命令在新目录中.
例如,如果您之前已经/repos/aosp-main
下载了目录中的repo (并同步到googlesource.com),则可以执行以下操作:
$ mkdir /repos/aosp-1.6_r1
$ cd /repos/aosp-1.6_r1
$ repo init -b android-1.6_r1 -u https://android.googlesource.com/platform/manifest --reference=/repos/aosp-main
$ repo sync
Run Code Online (Sandbox Code Playgroud)
然后,如果你想要一个不同的版本:
$ mkdir /repos/aosp-1.6_r2
$ cd /repos/aosp-1.6_r2
$ repo init -b android-1.6_r2 -u https://android.googlesource.com/platform/manifest --reference=/repos/aosp-main
$ repo sync
Run Code Online (Sandbox Code Playgroud)
这样,当我们还没有下载新内容时,我们只需要同步到googlesource.com地址,它应该只使用已经同步的主仓库在本地初始化其他repos.
您是否为了确定而更新了存储库脚本?
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4037 次 |
最近记录: |