有很多理由迫使你自建一个 Android 的仓库:
- Android 官方仓库被墙了
- 你做了一个重大的分支(比如移植至全新的平台)
- 你有一个小团体需要共享开发进度
而 Android 源码仓库,不像一些简单的软件的仓库,它是由100多个各类 git 仓库汇聚而成。为了管理众多的 git Google 甚至开发了套叫 repo 的工具。那么基于惯例,我们如果想自建一个 Android 源码仓库而又不想 fork 一套的话(就像 OMS、LeOS这样),我们希望自己的仓库也用 repo,而且要和官方的仓库兼容。
而正由于 git 的便利性,目前业界大大小小的组织已经建立了许许多多个自己的 Android repo 仓库。现在我们就来给自己建一个。
仓库建在 Linux 上最方便——最好是发行版自带了完整 git 工具的。如果不是,那么您先搞定自己服务器上的 git.
一、搞定自己服务器上的 git。包括 git 命令和 git-daemon,并使之工作起来
二、获取 repo 工具:
- curl > ~/bin/repo
-
chmod a+x ~/bin/repo
三、获取正版的 Android 目录树
- mkdir myandroid
-
cd myandroid
-
repo init --repo-url=git://github.com/MIPS/repo.git --repo-branch=stable -u git://github.com/MIPS/manifests.git -b mips-froyo-r9 --mirror
-
repo sync -j18
例子中 myandroid 是随意建立的一个临时的目录,实际位置无关紧要,假设是 /home/xinzhen/myandroid 好了,不妨碍操作。repo sync 比较耗时,可能要跑好几个小时。
四、建立自己的仓库
上一步获取的是完整的 Android 源码树镜像。为防万一我们不去动它,就把它放在那儿好了。我们给它制作一份拷贝,同时放进我们 git-daemon 的工作目录下,以供今后从网络上访问。
- cd /var/lib/git/
-
mkdir mipsandroid-xinzhen
-
cd mipsandroid-xinzhen
-
repo init --repo-url=file:///home/xinzhen/myandroid/repo.git --repo-branch=stable -u file:///home/xinzhen/myandroid/manifests.git -b mips-froyo-r9 --mirror
-
repo sync
这样,就在本地又建了一个 git 克隆。它位于 /var/lib/git/ 下面,这个是 git-daemon 的 base-path。如果你的与此不同,则要酌情修改。
修改配置文件 /var/lib/git/mipsandroid-xinzhen/manifests.git/config, 追加以下几行:
[daemon]
uploadpack=true
uploadarch=true
receivepack=true
至此 git 服务端应该已经起来了
五、修改 manifests 使之使用我们自己的路径
- cd /tmp/
-
git clone git://192.168.1.51/mipsandroid-xinzhen/manifests.git
-
cd manifests/
-
vim default.xml
打开 default.xml , 将其中
fetch="git://github.com/MIPS/" />
替换成
fetch="git://192.168.1.51/mipsandroid-xinzhen" />
这里 192.168.1.51 就是我们 git 所在服务器的 IP 地址。
- git commit -am "fetch from local host"
-
git push git://192.168.1.51/mipsandroid-xinzhen/manifests.git
写回去。
六、试试看从另一台电脑访问这个 repo 仓库:
- repo init --repo-url=git://192.168.1.51/mipsandroid-xinzhen/repo.git --repo-branch=stable -u git://192.168.1.51/mipsandroid-xinzhen/manifests.git -b mips-froyo-r9
-
repo sync -j5
下载开始了没? 开始了,那么恭喜你,建库完成。接下来使用 repo 提供的各类功能,进行分支建立和代码惯例吧,good luck。
七、本文内容来自于 http://zensheno.blog.51cto.com/2712776/489579 ,略作修改。
阅读(6002) | 评论(1) | 转发(1) |