我目前维护的服务器托管多个 Subversion 存储库。在另一台服务器上,我使用 svnsync 镜像生产存储库。镜像服务器上有100多个要同步的存储库,对于大多数存储库,它们在两个服务器上都具有相同的大小(不是磁盘大小)。
我担心的是,对于其中的一些,生产服务器和镜像服务器上的大小不一样(对于其中一些而言,差异为100mb +)。
我的问题是:这是正常的,为什么会发生?
更好地了解我的情况的一些其他信息:
我还运行了以下测试:
从生产和镜像(最新版本)中检出已损坏的存储库,并比较它们的日志和大小,它们都是相同的。在这一点上,这不是真正的结论,但至少它们似乎都在起作用。
使用来自服务器的svnsync命令,使用Subversion 1.6.6检查同步存储库的大小,我得到的结果与使用Subversion 1.6.13从镜像服务器同步一样。
比较存储库中的两种格式(使用Subversion 1.6.6在生产服务器上创建的格式和为svnsync命令创建的格式)并且它们都是相同的,使用fsfs 4布局分片1000 格式5 。
感谢您的帮助。
编辑:格式清晰。
答案 0 :(得分:1)
svnsync'd存储库有多种方法可以使用不同的大小。其中包括:
其中一个存储库可以使用svnadmin pack
打包,这可以非常显着地改变大小。
在修订同步时,会复制每个修订版的未版本化修订版属性,但在同步之后,可能会修改/添加/删除一个存储库上的修订属性。 (100MB听起来不太可能,但可能。)
可以在一个FSFS存储库上启用Rep-sharing(请参阅fsfs.conf),而不是另一个。共享共享可能会增加或减少存储库的大小,这取决于索引是否比共享保存占用更多空间。
如果使用Subversion独占文件锁,则会占用主存储库中的空间。它们不会被svnsync复制。有一个长期存在的错误导致锁被释放后占用空间,请参阅issue 3667。
在磁盘上,存储库只是文件的目录树。可以将任意非存储库文件放在存储库目录树中。任何此类文件都不会被svnsync复制。