repo init详解
首先选择manifest源,一般直接使用清华或中科大的镜像源
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest是清华提供的镜像源
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest是中国科学技术大学的镜像源
repo init推荐使用-b 分支标签、--depth=1和--platform=auto这几个选项加快速度
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-5.1.1_r9 --depth=1 --platform=auto
repo sync推荐使用--current-branch选项加快速度
repo sync --current-branch
另外:中科大限制了每个用户最多使用4线程,因此指定-j8选项并不能提高下载速度。
repo init 与 repo sync 区别
repo init:更新本地的repo
repo sync: 下载代码到本地。
repo init to bring down the latest version of Repo with all its most recent bug fixes.
repo sync,这一步才是真正的从服务器把源码下拉的过程,repo相当与是执行了多个git,期间有一个git出问题,比如网络卡神马的就中断,然后就是重复repo sync
关于repo的基本用法,这里有http://source.android.com/source/using-repo.html
普通repo init的用法
repo init -u git://android.git.kernel.org/platform/manifest.git
片刻等待之后,仓库初始化完成。此时,这个仓库只是更新了repo这个构建工具本身,并下载了整个Android源码仓库的一个清单的版本库, 在~/android/.repo下面能够看到这些文件
.repo 具体分析
其中 ~/android/.repo/repo 目录是构建工具的全部代码(及其.git目录)。
其次是.repo/下还包含一个manifest.xml指向 ~/android/.repo/manifests/default.xml文件,这个是整个Android源码库的清单文件,之后repo这个工具会 根据这个清单依次下载所有的代码。
然后是~/android/.repo/manifests/.git (指向~/android/.repo/manifest.git)它是这个清单文件的版本库
然后,repo init命令是根据default.xml里面的链接,逐个获取每个子项目的信息(将来repo sync的时候存在.repo/projects下),信息包括这些子项目的名称,服务器存放位置,client下载后应该的存放位置。一个default.xml的例子如下:
到这里repo init的工作就做完了,总结一下,repo init得到了repo工具本身,和一份子项目清单(default.xml,清单含版本信息,即repo init时 -b选项指定)
特殊的repo init用法,建立一个镜像
repo init还有两个不太常用的选项 --mirror 和 --reference
加--mirror的话,repo init变成把git server的特定branch镜像到本机(将来本机可以做镜像server。小公司局域网内部用很好) repo init --mirror之后sync的效果与不加mirror完全不同,本地出现git服务器的文件布局,试试才知道哦。 我觉得,这个功能直接叫repo mirror的话比较清楚。具体repo init --mirror封装了什么git命令,没有搞清楚,还不太懂git命令,也没研究repo的init.py的源码。
to-be-mirrored-branch的选取是有学问的,选的好,会提高后面下载的命中率。不加branch,用master也行。到底应该用什么呢?我也不知道... 我想master, gingerbread是两个不错的选择。 而如果你选了donut,一个很老的分支作为mirror,将来下面这一步你选下载gingerbread的话,肯定命中率就不高了(但是仍然可以这样做,不会出错才对。因为当mirror里面找不到时,还会回到原始server去找,只是mirror或者叫cache的命中率低而已。希望我的理解是正确的)
再另开一个目录加--reference试试看,跟普通repo init含义一样,但是需要指定一个本地mirror好的文件夹作为参数,代表说以后sync时优先参考这个本地mirror,这样下载速度就可以大大提高。 (光是提高下载速度么?应该是吧....)
另外镜像一个git server后,把远程仓库复制到本地文件夹,自己做server也有可能性了!!而且确实有人这样做,具体是通过修改(篡改)manifest.xml里面的url链接,架设自己的git server。但我想这大概不是mirror功能的本意,本意还是提高sync的速度。
repo init详解相关推荐
- red hat linux yum,Red Hat Enterprise Linux(RHEL)中yum的repo文件详解
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...
- Manifest和Repo使用详解
Android使用repo来管理多个Git项目.它需要一个manifest XML文件来指示这些git项目的属性. Manifest repo manifest XML可以包含下面的元素. 以如下, ...
- Red Hat Enterprise Linux(RHEL)中yum的repo文件详解
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...
- Linux init详解 (0,1,2,3,4,5,6)
init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过 ...
- linux下repo是什么文件夹,yum的repo文件详解、以及epel简介、yum源的更换
vi /etc/yum.conf [main] cachedir=/var/cache/yum #cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/ ...
- linux配置repo文件夹,CentOS yum的配置文件 repo文件详解
什么是repo文件? repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中 ...
- centos yum的配置文件 repo文件详解
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 什么是repo文件 ...
- yum的repo文件详解、yum源的更换
目录 1 什么是repo文件 2 yum.conf 3 yum.repo.d 4 自己私有的yum仓库 1 什么是repo文件 repo文件是Fedora中yum源(软件仓库)的配置文件, 通常一个r ...
- alloc、init 详解
原文地址 http://ios.jobbole.com/86324/ 感谢作者 前言 这是一篇我记录对alloc.init分析思考的笔记.如果读者想看懂我的第二个思考,可能需要您至少了解内存的分段 ...
最新文章
- ORM框架SQLAlchemy学习笔记
- JAVA——基于HttpComponents(HttpClient)的简单网络爬虫DEMO
- python如何保持数据类型不变_python 可变和不可变数据类型、格式化输出和基础运算符...
- 案例 github_github 项目搜索技巧-让你更高效精准地搜索项目
- Intellij IDEA Debug调试技巧
- vue.js 常见面试题_使用Vue.js时应避免的常见错误
- nginx php上传大小设置
- Matlab多组条形图Bar多组误差棒绘制Errorbar位置设置
- Q96:PT(2):纹理的仿射变换(Textures And Transformations)
- 疯狂Java实战演义
- cpu内存和线程和pool多进程池 Python
- 创投“黑帮”,必须的
- 开发方法---形式化方法
- MATLAB中的单相与三相dq变换模块
- c语言点阵字库12*16,用C语言编程16点阵字库
- Windows10 Windows自动更新失败 更新错误代码0x8024002e 无法自动更新
- Python编写后门程序
- 【Java实战篇】SpringBoot+MyBatis快速实现登录注册
- win10时间不准_【装机教程】超详细WIN10系统安装教程,官方ISO直装与PE两种方法教程...
- 核桃编程python下载_核桃编程for Mac