前言:
此文档用于开发过程中源码来自外网下载速度缓慢,如多人多次下载会影响效率,故将外部源码使用git repo镜像方式存放于内网公共服务器,并提供下载方式增加下载速度。
一、下载外网代码到本地服务器
repo init -u ssh://git@xxxxcom/wm-s905x5m-coffey-u/platform/manifest.git -m wm-coffey-20240612.xml --repo-url=ssh://git@xxxx.com/tools/repo.git --mirror(必填参数)
repo sync -f -d --force-sync -j8 //代码同步
解释一下上述命令:
1、如果服务器中有对应版本repo,则可以直接使用repo init -u ssh://git@xxxx.com/wm-s905x5m-coffey-u/platform/manifest.git -m wm-coffey-20240612.xml
2、repo版本和manifest提供的下载xml版本如果不一致,会出现未知问题比如:
3、repo sync -f -d --force-sync -j8建议使用同款命令,如外部仓库过大传输过程中会有部分目录同步失败,完整执行一遍后可以再执行一次同步命令。
二、转储存操作
1、manifest
场景一:查看下载后的代码仓库,如果存在manifest.git,则git remote -v直接获取路径
场景二:查看下载后的代码仓库,如果不存在manifest.git,则执行以下操作创建manifest仓库
到下载后仓库的上级目录
git init --bare manifest.git
cd manifest.git
git remote add origin ssh://user@10.10.xx.xx/home/xxx/xxx/sdk/manifest.git (当前服务IP+初始话manifest.git路径)
执行完毕后git remote -v 获取manifest仓库路径
2、将代码下载的xml上传到manifest仓库
还记得第一次检出代码时的manifest和wm-coffey-20240612.xml文件吗,随便找个临时目录下载外网的manifest仓库获取其中的wm-coffey-20240612.xml文件,并将其拷贝到刚创建的本地manifest仓库(git remote -v 获取到的仓库路径)
3、适配xml
这里我解释一下原理:我们从外网下载代码的时候使用的是wm-coffey-20240612.xml来寻找外部源存放的各文件目录,当我们把代码镜像本地后代码目录结构基本是与外部保持一致的,所以我们只需要更改其中的外部引用路径为我们本地相对或绝对路径
改完之后git push提交
三、测试下载
当以上转储步骤做完之后我们要在本地测试是否转储存成功
需要信息:
新建的mainfest仓库路径
repo工具路径
xml文件名称
git clone http://10.10.61.201:9090/baseline/repo/wave/repo.git
repo/repo init -u ssh://user@10.10.xx.xx/home//amlogic_sdk/s/wave3/sdk/manifest.git -m wm-coffey-20240612
repo/repo sync -f -d --force-sync -j8
转储用到的场景不多,但是一旦遇到需要使用的场景那么相信此文档会给你带来一些帮助,有其他疑问可以留言,看到会回。