首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用repo/git有效地更改android存储库版本的最佳方法

使用repo/git有效地更改android存储库版本的最佳方法
EN

Stack Overflow用户
提问于 2011-11-15 23:08:25
回答 2查看 4.3K关注 0票数 8

我遇到了一种情况,我需要构建一组不同版本的Android源代码的静态副本。

简单地做一个repo init -b $version; repo sync将花费永远的时间(init需要交互,而同步将浪费我跨版本的带宽)。

我目前的设置是下载一个基本版本(比如1.6_r1),将其复制到一个新文件夹(Androd-1.6_R2),然后重新运行initrepo init -b android-1.6_r2; repo sync。但是,同步有时会失败,出现以下错误:

ndk/build/platforms/android-3/arch-arm/usr/incl

正在中止

同步工作树: 100% (153/153),已完成。错误:在Android2.1_r2.1上返回的开发/:平台/开发签出caf83cb2b0ffde1a4cfb7cb258cbe012e283d9e1回购同步失败

我发现了一些类似的错误,表明这可能是因为repo与文件系统中的“已更改的”文件不同步造成的,但我想知道我的错误是否是由于在repo的鼻子下更改版本造成的。

这是更改存储库版本的正确方法吗?更普遍地说,是否有一种时间/带宽效率高的方法将android-1.6_r1存储库转换为android-1.6_r2

EN

回答 2

Stack Overflow用户

发布于 2011-11-16 07:23:45

(UPDATE:我最初的回答意味着我们可以从以前的回购逐步恢复,例如1.6_r1到1.6_r2,但是正确的设置应该是有一个本地的“主镜像”回购,在这里我们可以在启动新init时指向引用。我修改了下面的案文,以避免不正确的含义。)

不要复制,而是尝试将--reference=/path/to/main/repo添加到新目录上的repo init命令中。

例如,如果您已经在/repos/aosp-main目录中下载了一个回购(并同步到googlesource.com),您可以这样做:

代码语言:javascript
复制
$ 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

然后,如果你想要不同的版本:

代码语言:javascript
复制
$ 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

这样,我们只需要同步到googlesource.com地址时,我们还没有下载的新东西,它应该只是使用已经同步的主回购,以初始化额外的回复本地。

票数 9
EN

Stack Overflow用户

发布于 2011-11-16 03:21:52

你确保更新回购脚本只是为了确定吗?

代码语言:javascript
复制
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8144448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档