ANN: relay extension for quick repo sharing from behind firewalls (needs Google AppEngine)

Peter Arrenbrecht peter.arrenbrecht at gmail.com
Mon Mar 22 16:25:18 CDT 2010


Folks

I was bothered by having to send lots of small bundles to and fro via
email to collaborate with people behind firewalls, like myself. So I
wrote a small HTTP relay service for Google's AppEngine. It can be
used to expose any locally reachable web server to a peer through
firewalls, via a forwarder script. For Mercurial, I have written an
extension that adds the "hg relay" command that combines "hg serve"
and the forwarder script.

To get it to work, you need to have your own AppEngine instance
running the app in src_appengine/. I call it "ourrelay" in the example
below. For a quick test, you can use mine: "httprelay". But beware
that it might hit quota limits quickly.

So if I want to let someone pull from me, we negotiate a secret (via
chat, for instance), and then I do:

  $ hg relay --host http://oursecret.ourrelay.appspot.com/

and the other person does:

  $ hg pull http://oursecret.ourrelay.appspot.com/

The current version is really limited to only small amounts of data.
So only use this for exchanging a few changesets with no large files.
(AppEngine limits memcache entries so 1 MB, and httprelay currently
does not chain them.)

Details and code here:

  http://code.google.com/p/httprelay/

This is an alpha release. Feedback is welcome.

I realize that one could easily write a more efficient HTTP relay
service, which would also not have the irksome AppEngine-imposed quota
limits. However, AppEngine provides good _free_ basic hosting, which
is why I chose it.

Cheers,
-parren


More information about the Mercurial-devel mailing list