Status of adding "overlay repositories" to standard Mercurial?

Giorgos Keramidas keramida at ceid.upatras.gr
Mon Feb 26 11:16:32 UTC 2007


On 2007-02-25 16:39, Larry Hastings <larry at hastings.org> wrote:
> Brendan Cully wrote a very interesting patch for Mercurial, adding 
> "overlay repositories":
>
>    http://hg.kublai.com/mercurial/patches/overlay
>
> If I understand it correctly, when you clone a repository you can tell 
> it to leave all the old revisions in the parent, and the clone will 
> contain only the metadata of those revisions--it won't copy the data 
> proper.  The "overlay" branch acts just like any other branch, except 
> that it must access the parent whenever it needs file data from an 
> "overlay" revision.  (I assume revisions later pulled from the parent 
> are also "overlay" revisions, though I'm not sure.)

+1 for having this feature in the standard Mercurial installation.

This is a very interesting concept, because AFAICT it makes Mercurial
match very closely the behavior of Sun's Teamware system.  Working with
a ``workspace-tree'' is then much much cheaper in disk space than
keeping the entire metadata in every clone.

Keeping then a tree of workspaces like:

                           [remote 'gate' repo]
                                    |
                                    |
                 +------------------+-----------------+
                 |                                    |
                 |                                    |
        [local 'gate' clone]                 [local 'gate' clone]
                 |                                    |
                 |                                    |
                 |                                    |
        [local 'gate' overlay]               [local 'gate' overlay]

would cost less in disk space, but still allow a fully "off-line" mode
of operation :)

It's a good idea to keep a 'virgin' copy of the 'remote gate'
repository, even without overlaid repositories (so that i.e. "hg out"
will work much faster and keep working in off-line situations).  With
overlaid repositories this becomes even more attractive :)




More information about the Mercurial mailing list