背景
有时候本地需要维护多份代码,其中大部分是相同的。
repo
有提供 mirror
功能,可以帮助减少多份相同代码的下载时间和本地磁盘占用。
使用方式
- 建立一个本地
mirror
就是正常的 repo init xxx
命令,加上 --mirror
参数。然后 repo sync
即可。
得到的这个 repo mirror
不能用于正常开发,就是专用作 mirror
功能的,里面是很多的 xxx.git
- 下载时指定
reference
需要下载代码时,在正常的 repo init xxx
命令后加上 --reference <mirror path>
, <mirror path>
是本地的 mirror
路径。
实测效果
实测建立了 mirror
之后,使用 reference
功能下载的代码,空间占用从 17G
下降到了 12G
,当然 mirror
本身也占用了空间。所以必须 SDK
副本必须足够多才会真正起到节省空间的作用。
对于多人共用一台服务器的情况,在服务器上建立一个公共 mirror
,每个人再基于 mirror
下载自己的代码,是比较合适的。
其他
其实本地保存多份完整副本是比较浪费的,但有时候在一份代码上用多个分支切换确实不方便。
最近还看到一个 git worktree
功能,待具体学习实践。