On Tue, 13 Aug 2002, William Uther wrote:
>
> On Tuesday, August 13, 2002, at 02:22 AM, Greg Hudson wrote:
>
> > On Tue, 2002-08-13 at 01:59, Daniel Berlin wrote:
> >> 2. As you apply deltas, and generate bytes, each range of bytes
> >> generated
> >> gets marked with the revision number associated with that window (if
> >> any. If
> >> you don't find it in the map, it means it doesn't delineate a new
> >> revision, and we assign it the previous number), which we lookup.
> >
> > This is too simplistic. Let me throw out some concerns. First, an
> > example:
> >
> > SRC: foo\nbar\nbar\n
> > DST: foo\nbar\nfoo\nbar\n
> >
> > The instructions for this delta look like:
> >
> > Copy 8 bytes from src offset 0
> > Copy 8 bytes from src offset 8
>
> Yes. I think it is quite interesting that svndelta is not really a
> "delta" algorithm, but an efficient compression algorithm for the second
> piece of text given the first. (I agree the difference is subtle) The
> fact that they are not easily reversible has made some of my thinking
> about merging tricky.
>
> I believe another problem is that we currently use skip-deltas. This
> means that many revisions are not stored as deltas to their neighbouring
> revisions. You can't just apply the deltas one by one.
Yes, this would be a problem.
But the only "perfect" solution in light of this (where perfect is not
absolutely correct output, but as good as cvs) is to generate the
fulltext of all the revisions, and do a line based diff algorithm on
them, or to turn off skip-deltas.
How often does one do annotate?
I think i've used it twice, ever.
Is it often enough that we should be all that concerned with speed?
We are probably talking 10 seconds vs 1 second, in terms of speed
difference between doing it only based on svndiff, or doing it based on
the generated fulltexts.
But doing it based on fulltexts is actually improved by skip-deltas, since
we can generate fulltexts faster.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Aug 13 16:45:53 2002