分布式repo clone 方案---repo mirror

乐正锦
2023-12-01

【问题背景】
1.某大型项目bringup阶段,软件研发低峰120人力,下载代码,IT维护的服务器端卡死。
2.IT的解决方案是,让四个人先拉,拉完四个再拉四个,一天8h能拉8个人的代码,这样只要15天就可以拉完啦,超快的有没有!

【解决方案】
1.最终解决方案:分布式repo,加负载均衡器 (没时间写,留待有缘人)
2.临时解决方案:各组经理提供一到两台机器的300G磁盘做代码镜像,给各组苗苗们拉取代码
2.1.自力更生,丰衣食足,指望某些部门 【加机器/换技术】 是不要想了
2.2.拉取服务器代码做镜像

mkdir work_mirror
cd work_mirror
repo init --no-repo-verify -u ssh://工号@IP:29418/manifest -b 分支 -m minifest.xml --mirror
2.3.如果报错 manifest不可用,repo init 需要在空仓下执行,解决方案如下
	i.删除当前目录下的.repo 文件夹
	ii.删除上级父目录下的.repo 文件夹
	iii.删除上上级爷爷目录下的.repo 文件夹
	iv.直到这条路径上没有.repo 文件夹,即可以做镜像了
2.4.开始同步代码
repo sync -c -j16 --no-tags
	2.5.同步完成后,查看本地代码是否完整

3.开启同步服务器

git daemon --verbose --export-all --base-path=/mnt/work/work_mirror /mnt/work/work_mirror

4.查看本地IP

ifconfig

5.其他人员代码下载命令拼接`

repo init --no-repo-verify -u git://镜像服务器ip地址/manifest -b branch -m manifest.xml
repo sync -c -j16 --no-tags
#重新指向原始remote地址
repo init --no-repo-verify -u ssh://工号@IP:29418/manifest -b branch -m manifest.xml
repo sync -c -j16 --no-tags

6.如果要关闭镜像服务器,在镜像服务器终端上ctrl+c即可

 类似资料: