Design document for allowing alternative client side storage

Durham Goode durham at
Thu Mar 10 20:46:52 EST 2016

We're going to be investigating alternative client side storage 
strategies for Mercurial at Facebook over the next few months. We've 
already moved off revlogs for our filelog storage (via remotefilelog), 
and will likely need to avoid revlogs when we move to tree manifests as 

As part of this, I've put together a design doc describing a high level 
idea that would let us experiment with different storage backends, and 
provides a path for migrating existing users over. It's currently 
focused on situations like ours, where you have parts of the repository 
on a central server and parts on the client, but the overall design may 
be of interest to the community.

It's a bit light on concrete format details, since the main goal is to 
put abstractions in place that would let us break away from the existing 
formats and experiment.

Feel free to comment on the doc (you have to sign in to Quip to 
comment), or respond by email.


More information about the Mercurial-devel mailing list