Repo详解

Repo 简介

Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。

repoGoogle开发的用于管理Android版本库的一个工具,repo是使用Pythongit进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。

Repo 常用命令


.:当前目录

repo脚本有如下可用参数:
--repo-url=URL
repo 工具本身的 git 库地址。缺省为:git://android.git.kernel.org/tools/repo.git
--repo-branch=REVISION    使用repo的版本库,即repo git库的分支或者里程碑名称。缺省为caf-stable
--no-repo-verify                 设定不要对repo的里程碑签名进行严格的验证。
-u(--manifest-url)               设定清单库的Git服务器地址。
-b(--manifest-branch)        检出清单库的特定分支。
--mirror                              只在repo第一次初始化的时候使用,建立本地镜像
-m(--manifest-name)         指定清单库中的某个清单为有效的清单文件。默认为default.xml。
--no-tags                           don't fetch tags (不获取标签)                                     
repo 命令参数的含义,可以执行repo help command(sync)来看

常用repo命令
repo命令还有很多,可以通过命令 repo help?显示所有的命令,有兴趣的同学可以自行查阅。在这就不一一列举了。
另外 repo help 来获取有关某个命令的信息,例如,以下命令会生成 repo init 参数的说明和选项列表
repo help init
现在只列出我在工作中,用到比较多的几条repo命令:同步完成源代码后,需要为所有文件夹创建本地分支:
在源代码根目录执行命令:
repo start --all 自定义分支名

如:

repo start mtk/huaqin/6833_S_Drvonly --all  将所有的仓切换到mtk/../Drvonly分支下
删除指定本地分支:
repo abandon 已创建的本地分支名

repo sync -c .        -c当前分支.代表当前目录 

常见错误

1.所有代码拉取报错,请先使用如下命令回收详细拉取日志,方便分析定位;打印并回收报错的日志sync.log,找到具体报错仓的日志

repo --trace sync -c -j4 --no-tags 2>&1 | tee sync.log

将repo的所有动作详细输出:repo --trace sync -cdf 

2.报错关键字:fatal :不是一个git仓库 或 not a git repository

 3.报错关键字:fetch: [Errno 24] Too many open files

解决办法:

1. 修改这个文件

sudo vim /etc/security/limits.conf

添加如下两行

* soft nofile 10240

* hard nofile 10240

然后重启机器

2. 单独拉取报错的仓库,看下是否还会报错

repo --trace sync -c --no-tags ${报错的仓库名}

3. repo --trace sync -c --no-tags   2>&1 | tee sync.log  继续拉取

通过repo批量执行某个操做

repo forall -c "需要执行的命令"  如:repo forall -c "git pull --rebase"

git相关

​​​​​​​Git 详解_ChampionDragon的博客-CSDN博客

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
*.repo文件是在Linux系统下使用yum命令时,yum用来配置所需软件包的源信息的文件。该文件通常位于/etc/yum.repos.d/目录下,其文件名以.repo结尾。 *.repo文件的格式是INI格式,其主要包含了以下几个部分: 1. 仓库的基本信息 该部分包含了仓库的名称、描述、仓库的URL地址和仓库的类型等基本信息,例如: ``` [base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/$contentdir/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ``` 2. 软件包的策略信息 该部分包含了软件包的更新策略、安装策略和清除策略等信息,例如: ``` [updates] name=CentOS-$releasever - Updates baseurl=http://mirror.centos.org/$contentdir/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 ``` 3. 软件包的过滤信息 该部分用于指定要从该仓库中获取的软件包,例如: ``` [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=https://download.fedoraproject.org/pub/epel/7/$basearch gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=python* ``` 其中,exclude字段用于指定不需要从该仓库中获取的软件包。 4. 其他配置信息 该部分包含了其他的配置信息,例如: ``` [extras] name=CentOS-$releasever - Extras baseurl=http://mirror.centos.org/$contentdir/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 ``` 在该部分中,可以配置一些其他的选项,例如enabled字段用于指定该仓库是否启用。 以上是*.repo文件的基本格式和内容,通过修改*.repo文件,可以更改yum软件包管理器中软件包的源信息,以实现更好的软件包管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值