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