monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] Re: How new-style codeville merge works


From: Nathaniel Smith
Subject: Re: [Monotone-devel] Re: How new-style codeville merge works
Date: Sat, 7 May 2005 18:02:17 -0700
User-agent: Mutt/1.5.9i

On Sat, May 07, 2005 at 11:56:03PM +0100, Bruce Stephens wrote:
> Nathaniel Smith <address@hidden> writes:
> 
> > FYI:
> >   http://thread.gmane.org/gmane.comp.version-control.revctrl/2
> 
> Oh.  If I understand correctly, then it sounds like the basic storage
> that everone's using is suboptimal, and really SCMs should store a big
> database of lines, and files get stored as lists of pointers into that
> database?  (As Stellation did, although Stellation appears to have
> died.  I think they took that idea from a proprietary system, but I
> don't remember which one.)
> 
> Or, if not that, then you'd want to store changes to text files in
> some line-based form, I guess?  Otherwise surely you're recomputing
> diff-like information lots of the time (something cheaper than actual
> diffs, but I feel sure one could store something more useful than
> xdelta; indeed, didn't SCCS use something which would have been useful
> for this)?

Yes, a weave (SCCS's storage format) turns out to be remarkably
well-suited to this.  When Bram says he accidentally invented the
weave from first principles, by asking "now what data structure would
be good for this", he's absolutely not kidding:
   
http://www.loglibrary.com/show_page/view/139?Multiplier=3600&Interval=6&StartTime=1115091103

Everything else here looks like interesting implementation questions,
but somewhat irrelevant to the algorithm itself :-).  There are a lot
of different ways to implement these sorts of ideas, with complicated
trade-offs... some sort of caching may well be a good idea, for sure.
But we don't even know that yet for sure.

-- Nathaniel

-- 
Eternity is very long, especially towards the end.
  -- Woody Allen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]