We plan to have a SVN mirror repository in another office of ours in Sydney. We use VisualSVN server v2.5.7 in both locations.
I decided to use svnsync
to do it. At first I wanted to sync all of our repositories and when all of them are synced with mirror repository, a scheduler will call svnsync
every midnight.
It could sync 167 revisions of one of our repositories. But on the 168th revision we have a big file (a zipped oracle file of about 250 MB) that cannot be synced. Even though I modified the timeouts of both our local and remote servers it doesn't work. It sticks about one hour at one point and gives me the following error:
Transmitting file data .......................svnsync: E175002: PUT of '/{some path}/{bigfile}.zip': Could not send request body: An established connection was aborted by the software in your host machine. <{target url}>
Here are the modifications I made in the httpd-custom.conf
file in Apache server of VisualSVNs (local, mirror):
Timeout 300000
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 300000
<IfModule dav_svn_module="">
# Enable a 1 Gb Subversion data cache for both fulltext and deltas.
SVNInMemoryCacheSize 1048576
SVNCacheTextDeltas On
SVNCacheFullTexts On
#SVNCompressionLevel 9
</IfModule>
I even increased the timeout to 600000 or more, but the result was the same. I launched both servers in http mode. On our local network it can sync all of that repository in 20 minutes.
Regarding our internet connection's uploading speed that is about 256 Kbs, I don't expect this time in an internet environment. But I want the SVN servers to wait for the timeout I set for them, because we can easily commit files of these sizes into other SVN servers that use CollabNet Server. It just takes 2 hours to be committed successfully. I think the 300000 seconds timeout is far far from 2 hours.