Writing a server for mercurial

James Wendel jmwendel at gmail.com
Thu Nov 20 15:32:48 UTC 2014


I have been considering writing a server to host mercurial repos. Reading
around, hgweb and hg-serve already do a good job at serving normal hg
repos.  It also looks like other servers out there (scm-manager and others)
may just wrap hgweb and add functionality on-top of it.

Why I would like to do it:
1) To create a mercurial focused repo server.
2) Focusing on server-only operations may allow for performance
improvements over hgweb.
3) To learn and for fun (I'd be doing it in a different language).

So my question: is this worth pursing?

Reading over the specs, implementing this in anything other than python
would require me to implement the WireProtocol and BundleFormat to be
compatible with normal HG clients, along with all the .  How I store the
data behind that would be totally up to me, as long as the results were
compatible with what HG clients expect. This could allow for different
storage strategies that are more focused on acting as a server only.

I'd prefer to do a clean room implementation of it so I could release it
under BSD license, but I am not opposed to releasing under GPL if required
(as the docs don't seem detailed enough to really create a compatible
server).  Looking at HGLab, it looks like they just reimplemented hg core
in C# and released it as GPL2, then built their product on-top of that.  So
that could probably work for me as well.

(I doubt I'll actually make progress on this to anything usable, just
digging into it.  Any feedback is appreciated.)

Thanks,
-James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial/attachments/20141120/3289911d/attachment.html>


More information about the Mercurial mailing list