我想为三星星系s2建造cyanogenmod 9.0.0。我读过i9100并成功地编译了这些东西。但已经建成的是厘米-11,而我需要9.0.0。(我正在搜索另一个人编写的代码中的一个bug,我需要这个版本来了解正在发生的事情。)
命令
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-9.0.0中断与
error: in `init -u git://github.com/CyanogenMod/android.git --repo-url=https://gerrit.googlesource.com/git-repo --repo-branch=stable`: revision refs/heads/master in manifests not found但是help说-b指定了清单分支或修订,所以除非描述有误导性,否则应该可以使用最新的清单,然后再签出必要的版本。
所以我用命令
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0但现在我明白了:
$ repo branch
(no branches)
$ repo branches
(no branches)作为比较,在构建cm-11的目录中,我还得到了(no branches)。
在https://stackoverflow.com/a/10820464/755804中,我读到我应该使用特定于所讨论的构建的清单文件,但是如何获得它呢?(该文件列出了回购树中每个git存储库的修订版;手动获取此列表将是一项令人生厌的任务,应该有一个脚本能够这样做。或者,重复每个构建的文件可能存储在某个地方,我只是不知道在哪里?)
因此:我如何检查一个特定的修订的氰源?(特别是cm-9.0.0-银河系统2?)
更新
找到repo help forall --在每个项目中运行一个shell命令。但是 repo forall -c 'git branch'为每个项目显示了一个(no branch)。UPD:因为它应该是repo forall -c git branch -a,但是显示的分支集将取决于传递给repo init的-b键的参数。
更新2
下面的答案显示了如何签出源。下一步是运行breakfast i9100 (多么愚蠢的非描述性名称!)不幸的是,它不能工作,因为在过去的某个时刻,github开始需要应用程序身份验证(对于breakfast来说,没有引用是不够的)。因此,github访问策略的改变破坏了版本控制脚本,实际上已经将提交历史变成无用的旧垃圾:无法重建旧版本。我想说,这是版本控制系统的一个巨大的失败:结果是,版本控制系统无法用压缩的源树副本来替换目录。(子项目的数量和使用第三方脚本来管理它们是导致失败的关键因素。)
发布于 2014-08-26 10:18:49
我不确定您是否能够构建它,但这是您至少可以检索9.0.0源代码的方法。
首先,你需要
repo init -u git://github.com/CyanogenMod/android.git -b cm-9.0.0
repo sync你会得到一个错误信息,比如
Syncing work tree: 58% (144/248) error: in `sync`: revision refs/heads/cm-9.0.0 in CyanogenMod/android_frameworks_base not found我必须指出,如果是cm-9.1.0,这将是成功的。
现在,让我们修正出现的错误:
对于每个错误,如下所示
error: in `sync`: revision refs/heads/cm-9.0.0 in CyanogenMod/android_packages_apps_Settings not founddo
.repo/manifest.xml指向.repo/manifests/default.xml;<project path="packages/apps/Settings" name="CyanogenMod/android_packages_apps_Settings"/>revision="cm-9.1.0",那么它将看起来像<project path="packages/apps/Settings" name="CyanogenMod/android_packages_apps_Settings" revision="cm-9.1.0"/>packages/apps/Settingsrepo sync--您将得到9.0.0和9.1.0的混合源代码;在大多数情况下,它将是9.0.0.
现在,cd vendor/cm; ./get-prebuilts将失败,但因为它说
# Get Android Terminal Emulator (we use a prebuilt so it can update from the Market)使用cm-11中的./get-prebuilts是可以的,这是成功的。
https://stackoverflow.com/questions/25484914
复制相似问题