这是从stackoverflow crosspost,因为我发现我可能会在这里得到一个合格的观众
情况
我有一个非常大的Subversion版本库,我试图有效地备份。 版本库大小约为6 GB,并在不断增长。 一些大的承诺大小在500到1GB左右。
我正尝试通过Internet上行链路将此存储库备份到非现场位置。
解释它的庞大规模
任何人想知道,各个站点(configuration文件,EXE,数据文件)的整个生产环境都保存在这个存储库中,这样我们可以回滚到现有的工作版本,并跟踪生产设置的变化。 代码保存在不同的存储库中。
如何
这是我实际上在做什么:
问题
首先,我必须说它是有效的,但它仍然有一个潜在的问题。
问题在于,我期待每次进程运行时,只有新的修订文件/数据将被复制([repos] / db / revs / 0 / …),因此只需要带宽和时间做了一个大的承诺。 但是,相反:
就好像[repos] / db / revs / 0 / …中的文件每次做一个hotcopy都在改变。
问题
这是从“svnadmin hotcopy”预期的行为,[repos] / db / revs / 0 / …从一个hotcopy改变到另一个?
任何build议或选项,我可以用这个hotcopy rsync友好或说rsyncable ?
我不太确定在整个存储库上使用“svnadmin dump”会产生一个“rsyncable”文件 。
encryption/压缩存储库时,对基础数据(存储库)的任何小改动都会传播到encryption/压缩文件中。 所以,一个字节的变化可以在整个encryption/压缩数据集上传播。 所以,从rsync的angular度来看,所有的DID都会改变。
db/revs/中的文件没有改变,但是它们的时间戳。 --size-only是答案。