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

Re: Question on copies implementation

From: Malcolm Rowe <malcolm-svn-dev_at_farside.org.uk>
Date: 2006-11-08 19:32:01 CET

On Wed, Nov 08, 2006 at 07:22:44PM +0100, Andrea Aime wrote:
> First of all, thank you very much the the detailed explaination.
> Now, I'm really curious about forward deltas: does this mean that
> you have to sum all all diffs in order to rebuild the last revision
> of a certain branch?

With FSFS, yes, you have to combine the deltas against the plaintext
(the first version) to get the most-recent version. This is true
regardless of whether the file is on a trunk or a branch, since
Subversion doesn't have any inbuilt knowledge of 'trunk' or 'branch':
they're just paths in the filesystem.

More specifically, with FSFS, any given delta representation has a
'delta base': the representation that the delta is calculated against.

This is usually a prior version of the same file, but in the case of
copies, it's the copy source.

Note that it's not _the_ prior version, just _a_ prior version.
We use the same skip-list concept in FSFS to ensure that you only need
to combine ~log(N) deltas to recover the most-recent representation
(where N is approximately 'the number of changes to this file or any
copied-from files over time').

Regards,
Malcolm

  • application/pgp-signature attachment: stored
Received on Wed Nov 8 19:32:29 2006

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