Android内核开发:理解和掌握repo工具
来源:互联网 发布:阿里云 发票抬头 编辑:程序博客网 时间:2024/06/01 09:25
1. repo是什么?
repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。
2. 为什么要用repo?
因为Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。
repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库。
3. 怎么安装repo?
官方的repo脚本下载方法:
1
curl http:
//commondatastorage
.googleapis.com
/git-repo-downloads/repo
> .
/repo
由于官网被墙,目前可以使用的repo脚本下载方法如下(两者选一):
1
2
3
4
$ git clone git:
//git
.omapzoom.org
/git-repo
.git
$ git clone git:
//aosp
.tuna.tsinghua.edu.cn
/android/git-repo
.git/
$
cp
git-repo
/repo
.
/repo
或者修改手头已有的被墙的repo文件:
1
2
3
4
REPO_URL =
'git://git.omapzoom.org/git-repo.git'
REPO_URL =
'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
REPO_REV =
'stable'
当然,你也可以去我的GitHub下载这个repo文件,地址:
https://github.com/Jhuster/AOSP/blob/master/repo
4. 怎么下载源码?
上面说过,Android源码分支其实由一个叫manifest仓库来管理起来的,因此,下载源码首先要clone这个manifest仓库。这个仓库里面有一个XML文件,其实就是一个文件清单,列出了本代码仓库依赖哪些代码,该去哪下载,分支是什么。
一般用repo init命令来clone这个manifest仓库,例如,如果要下载Android源码,则方法如下:
1
$ repo init -u https:
//android
.googlesource.com
/platform/manifest
当然,上面的官网被墙了,因此,推荐如下镜像(两者选一):
1
2
$ repo init -u git:
//git
.omapzoom.org
/platform/manifest
.git
$ repo init -u git:
//aosp
.tuna.tsinghua.edu.cn
/android/platform/manifest
初始化完毕后,你会在本地的.repo文件夹中看到manifest仓库的内容,这个文件夹中最重要的文件是manifest.xml(有的仓库用的是default.xml,然后指向具体的xml),它就是上面说到的文件清单。
如果要选择特定版本的Android源码,或者在已下载的源码基础上切换到其他版本,则可以使用-b选项:
1
2
$ repo init -u git:
//git
.omapzoom.org
/platform/manifest
.git -b android-5.0.2_r1
$ repo init -u git:
//aosp
.tuna.tsinghua.edu.cn
/android/platform/manifest
-b android-5.0.2_r1
然后使用 repo sync 命令进行同步即可下载好全部的Android源码了。
5. manifest.xml文件清单的组成
上面提到了repo init需要初始化一个manifest仓库,仓库中含有一个很重要的manifest.xml文件清单,其实这个manifest.xml并不复杂的,它就是用XML文件的格式记录了本项目依赖的各个Git仓库的名称、地址,以及分支等信息。常用的元素如下所示:
(1) manifest 最顶层的XML元素
(2) remote 设置远程git服务器的属性,如名称、根URL地址等
(3) project 需要clone的Git仓库,path表示本机路径,name表示远程版本库的相对路径
(4) copyfile 执行拷贝操作,把URL/$src地址的文件拷贝到./$dest
其实,如果不使用repo工具,也是可以对照manifest.xml文件清单直接使用“git clone”的方式一个project一个project的下载的,然后对每个project进行git checkout特定的分支。
7. 常用repo命令
这一块网上文章很多,我就不详细讲解了,只列出常用命令。
(1) repo init // 初始化repo仓库
(2) repo sync // 下载源码
(3) repo start // 创建分支
(4) repo checkout //切换分支
(5) repo branches //查看分支
(6) repo status //查看文件状态
8.
1. repo是什么?
repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。
2. 为什么要用repo?
因为Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。
repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库。
3. 怎么安装repo?
官方的repo脚本下载方法:
1
curl http:
//commondatastorage
.googleapis.com
/git-repo-downloads/repo
> .
/repo
由于官网被墙,目前可以使用的repo脚本下载方法如下(两者选一):
1
2
3
4
$ git clone git:
//git
.omapzoom.org
/git-repo
.git
$ git clone git:
//aosp
.tuna.tsinghua.edu.cn
/android/git-repo
.git/
$
cp
git-repo
/repo
.
/repo
或者修改手头已有的被墙的repo文件:
1
2
3
4
REPO_URL =
'git://git.omapzoom.org/git-repo.git'
REPO_URL =
'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'
REPO_REV =
'stable'
当然,你也可以去我的GitHub下载这个repo文件,地址:
https://github.com/Jhuster/AOSP/blob/master/repo
4. 怎么下载源码?
上面说过,Android源码分支其实由一个叫manifest仓库来管理起来的,因此,下载源码首先要clone这个manifest仓库。这个仓库里面有一个XML文件,其实就是一个文件清单,列出了本代码仓库依赖哪些代码,该去哪下载,分支是什么。
一般用repo init命令来clone这个manifest仓库,例如,如果要下载Android源码,则方法如下:
1
$ repo init -u https:
//android
.googlesource.com
/platform/manifest
当然,上面的官网被墙了,因此,推荐如下镜像(两者选一):
1
2
$ repo init -u git:
//git
.omapzoom.org
/platform/manifest
.git
$ repo init -u git:
//aosp
.tuna.tsinghua.edu.cn
/android/platform/manifest
初始化完毕后,你会在本地的.repo文件夹中看到manifest仓库的内容,这个文件夹中最重要的文件是manifest.xml(有的仓库用的是default.xml,然后指向具体的xml),它就是上面说到的文件清单。
如果要选择特定版本的Android源码,或者在已下载的源码基础上切换到其他版本,则可以使用-b选项:
1
2
$ repo init -u git:
//git
.omapzoom.org
/platform/manifest
.git -b android-5.0.2_r1
$ repo init -u git:
//aosp
.tuna.tsinghua.edu.cn
/android/platform/manifest
-b android-5.0.2_r1
然后使用 repo sync 命令进行同步即可下载好全部的Android源码了。
5. manifest.xml文件清单的组成
上面提到了repo init需要初始化一个manifest仓库,仓库中含有一个很重要的manifest.xml文件清单,其实这个manifest.xml并不复杂的,它就是用XML文件的格式记录了本项目依赖的各个Git仓库的名称、地址,以及分支等信息。常用的元素如下所示:
(1) manifest 最顶层的XML元素
(2) remote 设置远程git服务器的属性,如名称、根URL地址等
(3) project 需要clone的Git仓库,path表示本机路径,name表示远程版本库的相对路径
(4) copyfile 执行拷贝操作,把URL/$src地址的文件拷贝到./$dest
其实,如果不使用repo工具,也是可以对照manifest.xml文件清单直接使用“git clone”的方式一个project一个project的下载的,然后对每个project进行git checkout特定的分支。
7. 常用repo命令
这一块网上文章很多,我就不详细讲解了,只列出常用命令。
(1) repo init // 初始化repo仓库
(2) repo sync // 下载源码
(3) repo start // 创建分支
(4) repo checkout //切换分支
(5) repo branches //查看分支
(6) repo status //查看文件状态
8. 小结
原文转自:乐搏学院http://www.learnbo.com/front/article/cmsIndex
关于repo工具就介绍到这里了,有任何疑问欢迎留言或者来信lujun.hust@gmail.com交流,也欢迎关注我的新浪微博@卢_俊 获取最新的文章和资讯。
- Android内核开发:理解和掌握repo工具
- Android内核开发:理解和掌握repo工具
- Android内核开发:理解和掌握repo工具
- Android内核开发:理解和掌握repo工具
- Android内核开发:理解和掌握repo工具(含被墙后的下载方法)
- Android源码仓库和Repo工具使用
- Android源码仓库和Repo工具使用
- GIT和repo使用方法,下载android-2.6.29内核
- GIT 和 repo 使用方法 下载 android-2.6.29 内核
- GIT和repo使用方法,下载android-2.6.29内核
- GIT和repo使用方法,下载android-2.6.29内核
- GIT和repo使用方法,下载android-2.6.29内核
- Android源码同步工具Repo
- repo 的用法和理解
- repo一些用法和理解
- git和repo 的知识(在下载android源码和linux内核源码时)
- Android 开发人员必须掌握的 10 个开发工具
- Android 开发人员必须掌握的 10 个开发工具
- go语言/golang实现base64加密解密
- Oculus不准备出席E3了!这是要搞事情?
- centos下新建超级用户及sudoers权限问题
- QT5.8+OpenCV3.2的安装与配置
- raspberry Pi zero v1.3 设置无线wifi连接
- Android内核开发:理解和掌握repo工具
- for(i=0,j=0;i<10,j<6;i++,j++)问题
- php curl返回false填坑记-curl调用微信创建自定义菜单返回false
- PHP实现数独破解(可以直接测试使用)
- search-guard插件的使用---logstash的配置
- docker-client 应用实例
- C/C++:__LINE__;__FILE__;__DATE__;__TIME__;__FUNCTION__等
- Android 编译 使用.SO 文件
- 搞清虚析构函数的使用场合