How to Create Branch in Android Local Mirror

获取 Android 源码非常简单,无非两三个命令。但如果你是一个团队,又或者你会在多台机器之间切换工作,那么,每个人、每台机器都从官网拉取代码,即浪费精力、耽误时间,又不能方便地管理代码。

这个时候,你需要使用本地镜像,正如官网文档所建议的那样。创建了本地镜像后,其他人、其他机器都可以就近拉取代码,然后推送修改到本地代码仓库。可是,这个过程要如何协作呢?接下来的文字将描述这个过程。

在开始之前,首先拉取 Android 源码到了本地(机器A):/home/poemcode/android-mirror

Step 1

首先,检出一份完整代码,在检出的时候,选定一个基线版本。当你不选定基线版本时,程序将自动选择 master 也就是主线上最新代码。我不建议你这么做,因为最新代码不一定是稳定,可能还存在编译错误。

官方给出的 Source Code Tags and Builds,则是可以保证稳定可靠的。因此,建议你选择清单里的最新 tag。

现在,我就选择 android-4.4.2_r2,在机器A上检出代码到 ~/andoid-src 路径下
cd ~/android-src
repo init -u /home/poemcode/android-mirror/platform/manifest.git -b android-4.4.2_r2

Step 2

接着,同步代码,并创建一个新分支,那么这个分支将基于上面 android-4.4.2_r2。
repo sync
repo start poemcode-4.4.2_r2 --all

Step 3

现在,分支 poemcode-4.4.2_r2 仅存在于机器A的 android-src 中,其他人、机器都不能检出这个分支。下面的操作就是把它推送到代码仓库,也就是 android-mirror 里。
repo forall -c git push aosp poemcode-4.4.2_r2

Step 4

完成上面操作,所剩下的工作就是修改 manifest 了。创建一个分支,名字和上面的一样。
cd .repo/manifests
git checkout -b poemcode-4.4.2_r2

同时别忘了修改代码,

– <default revision=”refs/tags/android-4.4.2_r2″
+ <default revision=”refs/heads/poemcode-4.4.2_r2″

最后一样提交并推送。
git commit -m "Release PoemCode's manifest for Android 4.4.2 Release 2"
git push origin poemcode-4.4.2_r2

Step 5

到了这一步,工作基本也就是完成了。机器B采用 ssh 方式从机器A上拉取代码,也就是一句命令的事情了。
repo init -u ssh://[用户名]@[机器A]/~/android-mirror/platform/manifest.git -b poemcode-4.4.2_r2

Leave a comment

Your comment