- Android 官方仓库被墙了
- 你做了一个重大的分支(比如移植至全新的平台)
- 你有一个小团体需要共享开发进度
而 Android 源码仓库,不像一些简单的软件的仓库,它是由100多个各类 git 仓库汇聚而成。为了管理众多的 git Google 甚至开发了套叫 repo 的工具。那么基于惯例,我们如果想自建一个 Android 源码仓库而又不想 fork 一套的话(就像 OMS、LeOS这样),我们希望自己的仓库也用 repo,而且要和官方的仓库兼容。
而正由于 git 的便利性,目前业界大大小小的组织已经建立了许许多多个自己的 Android repo 仓库。现在我们就来给自己建一个。
仓库建在 Linux 上最方便——最好是发行版自带了完整 git 工具的。如果不是,那么您先搞定自己服务器上的 git.
一、搞定自己服务器上的 git。包括 git 命令和 git-daemon,并使之工作起来
二、获取 repo 工具:
- curl http://android.git.kernel.org/repo > ~/bin/repo
- chmod a+x ~/bin/repo
- 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
四、建立自己的仓库
上一步获取的是完整的 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
修改配置文件 /var/lib/git/mipsandroid-xinzhen/manifests.git/config, 追加以下几行:
至此 git 服务端应该已经起来了
五、修改 manifests 使之使用我们自己的路径
- cd /tmp/
- git clone git://192.168.1.51/mipsandroid-xinzhen/manifests.git
- cd manifests/
- vim 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
七、本文内容来自于 http://zensheno.blog.51cto.com/2712776/489579 ,略作修改。