svnsync,源存储库与sink存储库的大小不一样

时间:2011-04-20 13:41:09

标签: svn svnsync

我目前维护的服务器托管多个 Subversion 存储库。在另一台服务器上,我使用 svnsync 镜像生产存储库。镜像服务器上有100多个要同步的存储库,对于大多数存储库,它们在两个服务器上都具有相同的大小(不是磁盘大小)。

我担心的是,对于其中的一些,生产服务器和镜像服务器上的大小不一样(对于其中一些而言,差异为100mb +)。

我的问题是:这是正常的,为什么会发生?

更好地了解我的情况的一些其他信息:

  • 两台服务器都是Windows Server 2003,
  • 生产服务器使用Subversion 1.6.6,
  • 镜像服务器使用Subversion 1.6.13,

我还运行了以下测试:

  1. 从生产和镜像(最新版本)中检出已损坏的存储库,并比较它们的日志和大小,它们都是相同的。在这一点上,这不是真正的结论,但至少它们似乎都在起作用。

  2. 使用来自服务器的svnsync命令,使用Subversion 1.6.6检查同步存储库的大小,我得到的结果与使用Subversion 1.6.13从镜像服务器同步一样。

  3. 比较存储库中的两种格式(使用Subversion 1.6.6在生产服务器上创建的格式和为svnsync命令创建的格式)并且它们都是相同的,使用fsfs 4布局分片1000 格式5

  4. 感谢您的帮助。

    编辑:格式清晰。

1 个答案:

答案 0 :(得分:1)

svnsync'd存储库有多种方法可以使用不同的大小。其中包括:

其中一个存储库可以使用svnadmin pack打包,这可以非常显着地改变大小。

在修订同步时,会复制每个修订版的未版本化修订版属性,但在同步之后,可能会修改/添加/删除一个存储库上的修订属性。 (100MB听起来不太可能,但可能。)

可以在一个FSFS存储库上启用Rep-sharing(请参阅fsfs.conf),而不是另一个。共享共享可能会增加或减少存储库的大小,这取决于索引是否比共享保存占用更多​​空间。

如果使用Subversion独占文件锁,则会占用主存储库中的空间。它们不会被svnsync复制。有一个长期存在的错误导致锁被释放后占用空间,请参阅issue 3667

在磁盘上,存储库只是文件的目录树。可以将任意非存储库文件放在存储库目录树中。任何此类文件都不会被svnsync复制。