基础命令
【repo init】
命令:
repo init -u <url> <option>
参数解析:
url 指的是 manifest仓库地址
option 一般是所在分支
更新目录:
.repo
|--manifests.git:指向 .repo/manifests/.git
|--manifest.xml:指向 .repo/manifests/default.xml文件
|--manifests
|--default.xml:是整下载清单,之后repo sync会根据这个清单依次下载所有的代码
|--.git:是这个清单文件的版本库
|--其它的xml:例如10月5日执行repo init -u <url> -b gingerbread=>gingerbread-20111005.xml
作用:10月20日我又做了一次repo sync后,想恢复到10月5日版本,把default.xml干掉,
用gingerbread-20111005.xml的内容代替,重新repo sync就行了。
|--repo:是构建工具的全部代码(及其.git目录)
【repo sync】
命令:
repo sync
参数解析:
无
更新目录:
.repo
|--projects:
|--bionic.git:是子项目的本地repository
bionic
|--.git:里面的许多链接就指向.repo/projects/bionic.git下面的内容
|--refs
|--tags:所有的标签信息
|--heads:分支信息
|--objects:有的版本本身
走过的坑
坑1:init报错“用户名@ssh:://url: Permission denied (publickey)”
出坑方案1:配置公钥
step1:ssh-keygen -t rsa -C 起个名字 连续三次回车键
step2:cat ~/.ssh/id_rsa.pub,copy 相关key信息到gerrit(设置,公钥)
出坑方案2:确认“用户名”是否正确
在gerrit上确认与ssh使用方式中的用户名是否一致
出坑方案3:OpenSSH从8.8版本开始由于安全原因开始弃用了rsa加密的密钥
验身: ssh -v 用户名@ssh:://url, 查看Gerrit服务器的OpenSSH的版本号,如果≥8.8,就可以用这个方法。
解法: 进入本机 .ssh目录(usr/bin/.ssh),新建一个config文件,写入如下内容:
Host 123.207.207.47
HostName 123.207.207.47
User chenke
PubkeyAcceptedKeyTypes +ssh-rsa
IdentityFile ~/.ssh/id_rsa
Port 29418
确认大法:ssh -p 29418 用户名@ssh:://url
通:...
If this is not the directory in which you want to initialize repo, please run:
rm -r /home/dan/work/code/test/kx//.repo
坑2:init报错“manifest 'default.xml' not found”
待解决..
【参考文件】
1. repo入门和基本用法_Jason_Lee155的博客-优快云博客_repo使用教程