[PATCH 00 of 12] RFC: Overlay repositories

Alexis S. L. Carvalho alexis at cecm.usp.br
Tue Jan 9 17:05:11 CST 2007


Thus spake Brendan Cully:
> On Monday, 08 January 2007 at 10:00, Brendan Cully wrote:
> > On Wednesday, 03 January 2007 at 20:17, Alexis S. L. Carvalho wrote:
> > > I'm a bit worried about the robustness of an overlay repo:  since
> > > revlogng stores the revision number of the parents (instead of their
> > > nodes), an overlay repo depends not only on the set of nodes of the
> > > parent repo, but also on their order.  If you accidentally remove the
> > > parent, you may have a hard time "re-overlaying" the repo, even if you
> > > have another repo with all the necessary revisions.
> > 
> > that is true, but I'm not sure how much of a concern it is. In general
> > I'd expect the parent repository to be some fairly stable tree if it's
> > going to share several children (eg main or crew). It would be
> > possible to use a different index format for overlays, where the
> > parents are specified by node. That'd make the index bigger, but maybe
> > it's not a big deal since overlays only carry some small part of the
> > total history. Is it worth it?
> 
> It also occurred to me that in the event you need to rebuild the
> parent, you could probably find the nodes by walking the parent
> changelog backward and trying the nodes found as candidate parents,
> then recomputing the hashes of the nodes in the children to see if
> they match. I think you'd be able to get everything but the order of
> the parents for merges, which I'd guess would be fine.

Hmm...  yeah, that should take care of relinking the revlog.  It
probably won't be very cheap, but this shouldn't be a very common
operation.

Alexis


More information about the Mercurial-devel mailing list