Mercurial is very slow over VPN connection

Our team has been using Mercurial for a long time, and everything was great. We all have a clone of repositories and push / pull named branches to a centralized Windows server located on our local network, accessed through a mapped drive.

The problem is that I recently started working remotely, and performance has deteriorated significantly. I connect to the office via VPN and get access to the shared drive, as always, but what used to be 20-30 seconds now takes more than 10 minutes!

I have a decent cable connection (30Mpbs / 2Mbps), so I did not expect that small changes will make it take a long time to push, but it seems that no matter how small my change shifts, many MBs exchange (from monitoring the network adapter during the push ) This is true even if I only changed one line in the source file. It also depends on the size of the repository, the smaller the repository, the better, but it is never "fast."

I am not familiar with what is involved in the promotion of Mercurial, but it seems that he needs to do a lot back and forth between the main repository and mine in order to ultimately decide what to send.

I just finished push of 5 files, where I added less than 5 Kbytes of code and here is the result of mine for hg push -b branch --debug --timemore than 13 minutes!

Is this “normal” over the VPN, or am I missing some critical configuration?

C:\inetpub\www\app1>hg push -b mynewbranch --new-branch --debug --time
pushing to X:\app1
query 1; heads
searching for changes
taking initial sample
searching: 2 queries
query 2; still undecided: 4, sample size is: 4
2 total queries
listing keys for "bookmarks"
5 changesets found
list of changesets:
7327fd8a913d019475783693fba7afc790bba11a
967e02cbdddb844b0cf1b67b452ff8e96614daa6
b5c9166ca22e98c499d71c9a0b7da2c36649f9f5
7e30ec219db545ba9309f7b8e8b015cf2a652383
79d028c22d2bc4554092ba5bad8249c7129d3caf
adding changesets
bundling: 1/5 changesets (20.00%)
bundling: 2/5 changesets (40.00%)
bundling: 3/5 changesets (60.00%)
bundling: 4/5 changesets (80.00%)
bundling: 5/5 changesets (100.00%)
bundling: 1/5 manifests (20.00%)
bundling: 2/5 manifests (40.00%)
bundling: 3/5 manifests (60.00%)
bundling: 4/5 manifests (80.00%)
bundling: Core/Module/Desktop/Display/file1.x 1/5 files (20.00%
)
bundling: Core/Module/Desktop/Display/file2.x 2/5 files (40.00%
)
bundling: Core/Module/Individual/Display/file3.x 3/5 files (60.00%
)
bundling: Core/Module/Individual/Forms/file4.x 4/5 files (80.
00%)
bundling: Public/Module/Desktop/file5.js 5/5 files (100.00%)
changesets: 1 chunks
add changeset 7327fd8a913d
changesets: 2 chunks
add changeset 967e02cbdddb
changesets: 3 chunks
add changeset b5c9166ca22e
changesets: 4 chunks
add changeset 7e30ec219db5
changesets: 5 chunks
add changeset 79d028c22d2b
adding manifests
manifests: 1/5 chunks (20.00%)
manifests: 2/5 chunks (40.00%)
manifests: 3/5 chunks (60.00%)
manifests: 4/5 chunks (80.00%)
adding file changes
adding Core/Module/Desktop/Display/file1.x revisions
files: 1/5 chunks (20.00%)
adding Core/Module/Desktop/Display/file2.x revisions
files: 2/5 chunks (40.00%)
adding Core/Module/Desktop/Display/file3.x revisions
files: 3/5 chunks (60.00%)
adding Core/Module/Desktop/Display/file4.x revisions
files: 4/5 chunks (80.00%)
adding Public/Module/Desktop/file5.js revisions
files: 5/5 chunks (100.00%)
added 5 changesets with 5 changes to 5 files (+1 heads)
listing keys for "phases"
try to push obsolete markers to remote
updating the branch cache
checking for updated bookmarks
listing keys for "bookmarks"
time: real 833.334 secs (user 0.577+0.000 sys 0.546+0.000)

C:\inetpub\www\app1>
+5
source share
2 answers

You are using Mercurial in a mode that assumes fast local access to the repository. On a local network, which may be acceptable, but any higher latency will give the effect that you see. Delay is not the only thing - using Mercurial in this mode will transfer files (or at least delta) through your uncompressed VPN.

, hgweb.cgi mercurial-server, ( ). .

.

+7

, VPN. --profile hg / ?

+2

All Articles