1 介绍

Android 为企业提供一个新的市场,无论大企业,小企业都是处于同一个起跑线上。研究 Android 尤其是 Android 系统核心或者是驱动的开发,首先需要做的就是本地克隆建立一套 Android 版本库管理机制。

Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将百多个 Git 库有效的进行组织。要想克隆和管理这百多个 Git 库,还真不是一件简单的事情。

2 下载repo代码

$mkdir test

$cd test

$git clone git://172.16.1.11/repo.git

于是在test目录下便有repo文件夹,里面包含了repo的源代码,里面有个repo脚本,用它来执行repo指令

3 初始化repo并克隆manifest

$repo/repo init -u git://172.16.1.11/manifest.git

test目录下面出现了.repo文件夹。

repo使用

manifests文件夹里面包含8xml文件,是我们自己定义的。

repo使用

命令repo init 要完成如下操作:

Ø 完成repo工具的完整下载,执行的repo脚本只是引导程序

Ø 克隆清单库manifest.git (地址来自于-u 参数)

Ø 克隆的清单库位于manifest.git中,克隆到本地.repo/manifests.清单.repo/manifest.xml只是符号链接,它指向.repo/manifests/default.xml

Ø 命令repo init还可以负担参数—mirror,可以建立和上游版本库一摸一样的镜像。

Ø manifests中有8xml文件,repo init 可以任意选择其中一个,默认选择是default.xml

$repo/repo init -u git://172.16.1.11/manifest.git –m android.xml

Ø 选择的是android.xml里面的配置,.repo/manifest.xml便指向.repo/manifests/android.xml

3.1 xml文件

repo使用

u 这个xml的顶级元素是manifest

u 通过remote元素,定义了名为korg的远程版本库,并定义了远程版本库的地址镜像fetch

u default元素定义了本地版本 revision

u 项目project path指的是克隆到本地的相对路径,name指的是远程仓库的相对路径,revision指的是提交代码的哈希值,用它来选择所克隆的版本

u project元素的子元素copyfile定义了克隆后的一个附件动作:从src拷贝文件至dest

4 同步项目

$repo/repo sync

执行这条命令,会参照.repo/manifest.xml清单文件,将项目所有相关的版本库全部克隆出来,也可以选择克隆其中的一个项目:

$repo/repo sync lichee/buildroot

经过此操作,就可以对其进行相应的操作

5 repo的命令集

5.1 repo init

主要完成克隆清单库minifest.git

5.2 repo sync

用于参照清单文件克隆并同步版本库。如果某个项目版本库尚不存在,则执行repo sync 命令相当于执行git clone,如果项目版本库已经存在,则相当于执行下面的两条指令:

n git remote update

相当于对每一个remote源执行了fetch操作

n git rebase origin/branch

针对当前分支的跟踪分支执行rebase操作

5.3 repo start

实际是对git checkout –b 命令的封装

repo start <newbranchname> [--all | <project>…]

5.4 repo status

实际上是对git diff-indexgit diff-filse命令的封装,同时显示暂存区的状态和本地文件修改的状态

5.5 repo checkout

实际上是对git checkout 命令的封装

5.6 repo branches

读取各个项目分支立标并汇总显示。

5.7 repo diff

实际是对git diff 命令的封装

5.8 repo stage

实际是对git add 命令的封装、

5.9 repo upload

相当于git push

5.10 repo download

主要用于代码审核者下载和评估贡献着提交的修订

参考:

http://wenku.baidu.com/view/672c8faddd3383c4bb4cd257.html

更多相关文章

  1. repost:Android shell 下 busybox,clear,tcpdump、、众多命令的移
  2. Android 4.0+ 版本中的EditText字符重叠问题
  3. Android源代码编译命令m/mm/mmm/make分析
  4. Android实训案例(二)——Android下的CMD命令之关机重启以及重启r
  5. android平台的三个编译命令----make,mm,mmm
  6. 穿越之旅之--android中如何执行java命令
  7. Android:模拟器使用命令安装apk
  8. Android版本更新

随机推荐

  1. Android之——申请应用系统管理员权限
  2. 【Android(安卓)开发教程】添加ActionBar
  3. android随心笔记-part2-第1个android应用
  4. 在 Android 使用 Support Annotations 注
  5. android 摄像头对焦,zoom的通知事件回调,告
  6. Android studio插件GsonFormat,返回json快
  7. Android自定义TextView省略号样式
  8. Android 滑动效果入门篇(二)—— Gallery
  9. Service详解(一):什么是Service
  10. 有关String类的笔试常考题