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