svnsync, size of source repository vs sink repository not the same
I currently maintain a server that host multiple Subversion repositories. On an other server I mirror the production repositories using sv开发者_开发技巧nsync. There are over 100 repositories to be synched on the mirror server, for most of them they have the same size (not size on disk) on both server.
My concern is that for a few of them the size on the production server and the mirror server is not the same (a difference of 100mb+ for some of them).
My question to you guys is: is it normal and why does it happen?
Some additional information to better understand my situation:
- Both server are Windows Server 2003,
- Production server uses Subversion 1.6.6,
- Mirror server uses Subversion 1.6.13,
I have also run the following tests:
Checked out a broken repository from production and from mirror (at latest revision) and compared their log and size and they are both the same. At this point this is not really conclusive but at least they both seem to be working.
used the svnsync command from the server using Subversion 1.6.6 to check out the size of the synched repository and I get the same results as if I had synched from the mirror server using Subversion 1.6.13.
Compared both format from repositories (the one created on production server using Subversion 1.6.6 and the one created for the svnsync command) and they are both the same, using fsfs 4 layout sharded 1000 with format 5.
Thank you for your help.
EDIT: format for clarity.
There are several ways for svnsync'd repositories to be different sizes. These include:
One of the repositories could have been packed using svnadmin pack
, that can change the size quite dramatically.
The unversioned revision properties for each revision get copied when the revision is sync'd, but it's possible for the properties of a revision on one repository to be modified/added/deleted, after the sync. (100MB sounds unlikely but is possible.)
Rep-sharing (see fsfs.conf) can be enabled on one FSFS repository and not the other. Rep-sharing may increase or decrease the size of a repository, it depends on whether the index takes up more space than sharing saves.
If Subversion exclusive file locks are used these take space in the master repository. They are not copied by svnsync. There was a long standing bug that caused locks to take up space after being released, see issue 3667.
On disk a repository is just a directory tree of files. It's possible to put arbitrary, non-repository, files inside a repository directory tree. Any such files never get copied by svnsync.
精彩评论