由于逆天rpcs3仓库拿llvm当子模块,只好想办法在本地弄一个。
直接克隆肯定是不太行的,100KB/s鬼知道要克隆几个小时。
尝试使用黑车镜像站,但是也不稳,20MB/s能跑几分钟然后报个断流,啥也不剩。
然后是tuna等国内镜像站,结果都只有几百k,一样不太行。
然后遇到了一个巧合,NJU的镜像暴露了git目录的所有文件,可以直接下载,速度有8MB/s,于是整了个烂活,把objects/pack目录下几百个文件一个一个下载下来了,其他目录的也基本弄下来了,除了refs/heads,refs/remotes,refs/tags等明显不算在主分支上的东西,应该没影响。
然后逆天的来了——它作为一个submodule始终没法init,报错找不到commit hash(这个commit确实不在主线上),我也没什么办法,卡在这里了。
于是我想到了把它从submodule模式提取出来成为一个独立仓库,把config里的filemode和bare改为一般仓库的false,重新用git status检查,终于正常显示为仓库了(并非正常,显示我把仓库内容删光了)。
然后折腾半天把所有文件unstage、revert,这下终于变成一个基本正常的仓库了。
此时运行git pull,但是忘把镜像站链接改回来了(甚至还不是NJU的链接),pull了半天又下了大概5GB数据,告诉我找不到main branch的云端链接,set upstream后告诉我领先主线一万七千多个commit……改回github正常链接后也正常不了了。此时仓库大小约22GB。
最后是checkout到目标commit hash,把git目录移动到rpcs3的git/modules目录对应位置,正常文件移动到目标文件夹,再submodule init,就一切正常了。
总之这个折腾过程……就这样吧,其他仓库应该也没有暴露git目录这个待遇。