Announcing hgwebcachingproxy and dynapath

Mads Kiilerich madski at unity3d.com
Wed Nov 6 13:24:13 CST 2013


Hi Mercurial

We have started using a hgweb proxy mirror thingie to "solve" the 
problem of having branch offices with multiple developers 
cloning/pulling the same repositories over connections with high latency 
and low bandwidth. The network limitations were especially annoying in 
combination with largefiles where the same data were fetched multiple 
times, at least once for each local machine.

With this thingie a local server acts as a proxy for the real 
repository, intercepting all read operations, pulling and updating a 
local mirror and serving the read operations from that mirror, using 
authentication and authorization from the central repo.

An earlier version was posted as "hgwebproxy" but it is now known as 
https://bitbucket.org/Unity-Technologies/hgwebcachingproxy . It is a bit 
of a hack ... but it seems to work and improves the user experience a lot.


It only really makes sense to use the proxy when physically located in 
the office. We try to detect the physical location and intercept the 
traffic by installing and using 
https://bitbucket.org/Unity-Technologies/dynapath on client machines.

The dynapath extension looks at the local IP addresses and try to use 
that to determine which path to use - the main server or the local proxy 
mirror thingie.

(Looking at the IP address or its network is often not sufficient as it 
seems like it is very common for access points to use 192.168.1 ... and 
the full IP address is often not sufficiently stable. Other ideas for 
detecting the local address from user space (in a more or less cross 
platform way) would be appreciated.)

/Mads
Unity Technologies


More information about the Mercurial-devel mailing list