Chinaunix首页 | 论坛 | 博客
  • 博客访问: 599436
  • 博文数量: 95
  • 博客积分: 1573
  • 博客等级: 上尉
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-23 10:46
个人简介

hello world!

文章分类

全部博文(95)

文章存档

2014年(1)

2013年(44)

2012年(50)

分类: Android平台

2013-07-11 14:35:24


repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。

一、使用repo下载源码:

1)确定在home目录中拥有bin/目录,并添加到path中:

$ mkdir ~/bin

$ PATH=~/bin:$PATH

2)下载repo:

$ curl ~/bin/repo

$ chmod a+x ~/bin/repo

3)下载

$ mkdir android-x86

$ cd android-x86

$ repo init -u 

$ repo sync

 

repo sync是可以断点续传的,中间要是某个project断了直接ctrl c就可以下一个了,到时候在重新sync一遍

或者ctrl z, 中断之后再进行repo sync即可。

执行$repo sync时经常中断,可使用如下脚本:

#!/usr/bin/sh

echo "=====================start repo sync======================" 

repo sync 

while [ $? = 1 ]; do 

echo “==============sync failed, re-sync again===================”

sleep 3 

repo sync 

done 

 

脚本先执行一次 repo sync命令,然后循环判断$? 是否为 1,为1则再次执行repo sync命令,直到$?=0, 完成退出。

$? 这个变量储存的是上一次shell命令执行的返回值, 0表示成功,非零表示失败。

 

二、repo help

1、#repo init -u URL , 在当前目录安装 repository ,会在当前目录创建一个目录 ".repo"  -u 参数指定一个URL 从这个URL 中取得repository manifest 文件。

repo init -u git://android.git.kernel.org/platform/manifest.git ,可以 -m 参数来选择 repository 中的某一个特定的 manifest 文件,如果不具体指定,那么表示为默认的 manifest 文件 (default.xml)

repo init -u git://android.git.kernel.org/platform/manifest.git -m dalvik-plus.xml  可以用 -b 参数来指定某个manifest 分支。

2#repo sync [project] 下载最新本地工作文件,同步 repository 中的代码。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项目

如果是第一次运行 repo sync 则这个命令相当于 git clone 会把 repository 中的所有内容都拷贝到本地

如果不是第一次运行 repo sync , 则相当于 更新 和 自动合并 动作;

repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突, 这需要手动运行 git rebase --continue

3. repo diff [ project-list ] 显示提交的代码和当前工作目录代码之间的差异。

4. repo forall -c command,对所有项目执行一个command命令,这个命令 相当 好用;

5. repo start newbranchname 创建新的branch分支。 "." 代表当前工作的branch 分支。 

6. repo prune [project list] 删除已经merge 的 project 

7. repo status 显示 project 的状态


三、查看可切换的分支

cd .repo/manifests
git branch –a
$ git --git-dir=.repo/manifests/.git/ branch -a
查看当前的分支

repo branches

四、使用Repo在Windows平台下载Android源码

1. 安裝Cygwin [1] , 要安裝的packages如下:

Net -> curl 
Devel -> git* (git, git-completion, git-gui, gitk) 
Libs -> libreadline6, libiconv2 
Editors -> vim 
Python -> python 
2. 启动Cygwin之后,开始安装Repo

先在使用者的家目录新增bin目录
$ cd ~
$ mkdir bin 
下载Repo到bin目录里
$ curl  >~/bin/repo
$ chmod a+x ~/bin/repo 
设定Repo,并新增mydroid目录准备存放源码
$ cd ~
$ mkdir mydroid
$ cd mydroid
$ ~/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
(需要输入一个已申请Google account的email)

开始抓取所有的Android源码
$ ~/bin/repo sync

 

阅读(6887) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~