[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Whither delta combiner

From: Zack Weinberg <zack_at_codesourcery.com>
Date: 2002-02-11 20:44:03 CET

On Mon, Feb 11, 2002 at 01:21:34PM -0500, Greg Hudson wrote:
>
> Some notes on node branches
> ---------------------------
>
> I'm not sure we're doing a good job of dealing with branches right now.
> Based on the code Daniel was modifying, I think when we branch we are
> blindly re-deltifying the predecessor node to point into the branch.
> Which works, but doesn't necessarily yield good performance. What RCS
> does looks like:
>
> 1.1 --> 1.2 --> 1.3 --> 1-4 --> 1.5
> 1.3 <-- 1.3.1.1 <-- 1.3.1.2 --< 1.3.1.3
>
> Switching to backwards-branch behavior is pretty easy with or without
> skip-deltas.

I want to stomp on this idea right now: what RCS does is *wrong*. The
tips of all the branches should be fulltext. Otherwise, performance
rapidly becomes pathological as the branch lengthens and the parent
tip moves farther away from the branchpoint. This is a major reason
why people hate working with branches in CVS.

I think the diagram above is confused; I'm not sure what the arrows
mean. I would recommend deltas on branches be stored something like
this, where <-- means "retrieve the version on the left by applying a
delta against the version on the right":

   1.1 <-- 1.2 <-- 1.3 <-- 1.4 <-- 1.5
                           1.3.1.1 <-- 1.3.1.2 <-- 1.3.1.3

This way, the existence of a branch affects nothing outside the
branch, and retrieving the tip of any branch is fast.

zw

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:06 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.