git-cloner / gitcache

When clone from github.com, build mirror cache to improve clone speed
https://gitclone.com
GNU General Public License v3.0
231 stars 33 forks source link

问下缓存的更新的机制是怎样的? #5

Closed cui2121 closed 4 years ago

cui2121 commented 4 years ago

自己搭建了个gitcache给内网用户缓存加速,现发现github上代码更新了,但是缓存里文件还是旧的,已经持续24小时了

little51 commented 4 years ago

镜像的建立是用 git clone --depth=1 --mirror github库的url 本地目录,这里边的技巧是用depth=1,用浅克隆快速建立镜像;更新缓存的机制是:用cron定时任务枚举所有镜像目录,逐个执行git -C 本地目录 remote update。这个命令会更新镜像,自动回收一些文件(git的gc)

little51 commented 4 years ago

由于github.com对并发的请求数有限制,所以gitclone.com按IP错峰更新,如果你只有一台机器,就直接在cron里调就行了,不要判断IP。我看gitrepo.go里go SyncLocalMirrorFromRemote()默认是早上4点执行,你把这段改成合适的时间点即可。

cui2121 commented 4 years ago

镜像的建立是用 git clone --depth=1 --mirror github库的url 本地目录,这里边的技巧是用depth=1,用浅克隆快速建立镜像;更新缓存的机制是:用cron定时任务枚举所有镜像目录,逐个执行git -C 本地目录 remote update。这个命令会更新镜像,自动回收一些文件(git的gc)

好的,明白了。谢谢

cui2121 commented 4 years ago

由于github.com对并发的请求数有限制,所以gitclone.com按IP错峰更新,如果你只有一台机器,就直接在cron里调就行了,不要判断IP。我看gitrepo.go里go SyncLocalMirrorFromRemote()默认是早上4点执行,你把这段改成合适的时间点即可。

ok,明白了,谢谢