[RFC] Multi-parent diffs

Matthew D. Fuller fullermd at over-yonder.net
Fri Apr 6 20:49:58 BST 2007


On Fri, Apr 06, 2007 at 02:31:03PM -0400 I heard the voice of
Aaron Bentley, and lo! it spake thus:
> 
> I've drafted a spec for a new diff representation that I think we
> should consider adopting:

Peripherally related:

It would be useful to be able to store diffs against a revision that's
not one of the parents (maybe even one that isn't in the ancestry).
For one thing, this can lead to smaller diffs (in the extreme case,
when you're just restoring the content of an old revision, your diff
can become empty).  For another, it allows a skip-delta-ish approach,
letting us make fewer reconstruction steps from a fulltext, leading to
faster construction, or less space from more distance between
fulltexts, or both.

Actually utilizing such on the fly with commit may prove too
time-consuming for the most part (though commands like 'revert' and
'merge' could drop some hints somewhere for commit to pick up), but
having the capability latent means that we can later write a
repack/optimize to use it, or use it in special cases like conversions
(where we may have more time to do the analysis), or etc.


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.



More information about the bazaar mailing list