repo init详解

news2025/1/15 16:47:07

首先选择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的速度。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来汽车产业新生态高峰论坛在深圳举行

【2022年12月22日发自深圳】汽车产业正面临百年未有之大变局,以数字化技术为特征的智能网联汽车已经成为全球汽车产业转型升级的战略方向。汽车的属性也从一个机械化的交通工具转变成与各个生态相互连通的移动终端和数字空间。12月21日,由工业和信息化部…

【C++初阶】模板进阶

文章目录非类型模板参数模板特化函数模板特化类模板特化全特化偏特化模板的分离编译模板总结所有测试的代码非类型模板参数 模板参数分类类型形参与非类型形参 1.类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 2.非类型形…

创建城市人口总量趋势图

创建城市人口总量趋势图学习目标使用数据人口总量趋势方程数据导入对数据进行处理fct_reorder2的应用对数据进行整理对图像进行可视化操作使用fct_reorder2去掉趋势点内容小结学习目标 我们所采用的学习内容来自B站的Lizongzhang老师的R语言的学习分享 今天学习的主要内容是关…

数据集说明:COCO的两个数据集COCO-stuff和COCO-Caption

数据集图片数量比较 COCO-Caption有33万张图、50万个caption COCO-Stuff有16.4万张图 172个类别(80thing、91stuff、1个未标注类) COCO-stuff的具体类别说明 COCO-Stuff contains 172 classes:80 thing, 91 stuff, and 1 class unlabeled. The 80 thing classes are the same …

群晖nas部署python项目

事件起因是因为想再硬盘里下载小姐姐,在线播放会卡顿很不爽, 开始用一些在线爬的网站,网速非常慢,我发现自己有nas 如果把项目部署再nas上 通过命令行下载就好了 我就开始检索资料,发现网上的都是一些过时的文章&#…

分布式系统关键路径延迟分析实践

作者 | 月色如海 导读 随着对用户体验的不断追求,延迟分析成为大型分布式系统中不可或缺的一环。本文介绍了目前在线服务中常用的延迟分析方法,重点讲解了关键路径分析的原理和技术实现方案,实践表明此方案效果显著,在耗时优化方面…

图解深度学习-提高泛化能力的方法

数据集 在深度学习的训练过程中,神经网络的类型和结构固然重要,但训练样本才是重中之重。 数据增强 当训练样本数量较少时,可以通过数据增强来增加样本的多样性。 数据增强就是通过对样本图像进行平移、旋转、镜像翻转等方式进行变换。除…

【Java】Log4j日志

目录 1.日志概述 日志是什么 为什么会有日志 2.log4j概述 什么是log4j 版本 3.log4j入门案例 步骤 实现 总结 4.log4j1详情:记录器rootLogger 5.log4j1详情:日志级别 6.log4j1详情:输出源appender ConsoleAppender FileAppend…

第二十八章 数论——扩展欧几里德算法与线性同余方程

第二十八章 扩展欧几里德算法一、裴蜀定理1、定理内容2、定理证明二、扩展欧几里德定理1、作用2、思路3、代码三、线性同余方程1、问题2、思路3、代码一、裴蜀定理 1、定理内容 对于任意整数aaa和bbb,一定存在整数xxx,yyy使得axbyaxbyaxby是gcd(a,b)gc…

Linux的基本指令

前言 相对于linux操作系统,其实window也是操作系统,我们这节课说的是Linux的基本指令 那么在window上有没有基本指令呢,答案是有的,我们可以使用windowsr进入cmd就可以用我们的基本指令 基本指令 在本文中,我们基本上都使用类比的…

基于threeJS实现圣诞节孔明灯效果

1.效果图 2.实现思路 使用three.js的套路几乎是固定的: 1 初始化场景(scene) 2.创建透视相机(camera) 3.设置相机位置(position) 4.创建纹理加载器对象(texture) 5.创建…

【SegNeXt】语义分割中对卷积注意力设计的反思

目录 1.摘要 2.相关工作 2.1语义分割 2.2多尺度网络 2.3注意力机制 3.网络结构 3.1卷积编码器 3.2解码器 4.实验 个人总结: 论文链接:论文 代码链接:代码 论文发表于NeurIPS 2022,值得注意的是,在Transforme…

UVM入门和进阶实验0

一. 概述 UVM学习流程仍然按照SV时候的核心流程,即: 如何搭建验证框架验证组件之间的连接和通信如何编写测试用例,继而完成复用和覆盖率的收敛 我们UVM入门和进阶实验0还是同之前SV验证实验0思想一样,让大家通过简单的实验要求…

学习HTTP协议,这一篇就够啦 ~~

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

基于迅为3568开发板的多屏同/异显动态方案

iTOP-RK3568开发板采用四核Cortex-A55处理器,芯片内置VOP控制器,支持HDMI、LVDS、MIPI、EDP四种显示接口的多屏同显、异显和异触,可有效提高行业定制的拓展性。 iTOP-RK3568开发板支持以下屏幕: 迅为 LVDS 7 寸屏幕 迅为 LVDS …

【数学】三角函数小题

∣三角函数小题NightguardSeries.∣\begin{vmatrix}\huge{\textsf{ 三角函数小题 }}\\\texttt{Nightguard Series.}\end{vmatrix}​ 三角函数小题 Nightguard Series.​​ 以下是一些废话 不愿意看的可以跳过 最近守夜人更新得很慢,守夜人拖更主要有三个原因&#…

Hudi(1):Hudi概述

目录 0. 相关文章链接 1. Hudi简介 2. 发展历史 3. Hudi特性 4. 使用场景 4.1. 近实时写入 4.2. 近实时分析 4.3. 增量 pipeline 4.4. 增量导出 0. 相关文章链接 Hudi文章汇总 1. Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental&#xff0…

servlet(三)文件的下载

主要有几个步骤: 1、获取要下载的文件名 2、读取要下载的文件内容 (通过 ServletContext 对象可以读取,这个也是 ServletContext的应用) 3、获取要下载的文件类型 4、在回传前,通过响应头告诉客户端返回的数据类型 5、还要告诉客户端收到的数据是用于下载使用&#…

Web APIs 简介、DOM

文章目录一、Web APIs 简介1、Web APIs 和 JS 基础关联性2、API 和 Web API二、DOM1、DOM简介2、获取元素(1)根据ID获取(2)根据标签名获取(3)通过HTML5新增的方法获取(4)获取特殊元素…

【数据库数据恢复】oracle数据库执行truncate table的数据恢复案例

数据库恢复环境: 操作系统:windows server; 数据库:win_oracle_x64。 数据库故障&分析: oracle数据库误truncate table,备份无法使用。 oracle数据库误操作导致数据丢失是比较常见的一种故障&#xf…