git 影子备份做出来了
性能太差了
kopia 影子备份 10秒就能干完的事 git 影子备份要 30 秒
我把我的 sm 多复制了一份,直接成 60 秒了。
要是能在应用运行时进行影子备份,应用不运行时像之前一样备份也就算了
但 git 影子备份实现的方式非常勉强
所谓影子备份,就是通过 windows 的 shadow copy 服务将备份文件夹那一刻的镜像挂载到某个目录上,这个目录只可读不可写,可以拿来复制
kopia 影子备份是直接对这个目录进行备份,生成快照后再把目标路径换成源路径,这个过程非常顺滑
由于 git 只能在 git 仓库里运行,必须要将数据放在 git 仓库里才能进行 git 备份,而影子目录只可读不可写,这是做不到的
必须先将文件数据复制进 git 仓库,然后才能进行 git 提交。这里又出现了一个新的问题,这样复制进去的文件在提交时需要花费大量的时间,再加上复制文件需要的时间,git 影子备份的性能变得非常差。
最大的问题是,因为要用复制替换的方式更新 git 工作区,你就不能直接把备份文件夹放在工作区里用 git 提交更改,就算不通过影子备份只使用普通备份也得这么替换一次,耗时翻了十几倍。
从中午写到晚上,30 kb 的代码就整出了这种东西,删了得了