views:

99

answers:

2

The SVN book describes deltification as "each time a new version of a file is committed to the repository, Subversion encodes the previous version (actually, several previous versions) as a delta against the new version."

This collab.net blog article says that "In BDB (Berkeley Database) fulltexts are found at the tips of each distinct line of a file's history." while "FSFS stores deltas in the opposite direction so that old versions never need to be rewritten."

If this is true, will SVN (using BDB) store a full copy of a file at the HEAD of each branch and then eliminate one copy of the file if the branches are merged?

A: 

No, because the older revision still exists. In other words, in order to go back to the previous non-merged version it has to keep it around.

Adam Davis
+4  A: 

SVN only stores deltas - that is, what has changed between commits/versions. This is one reason you can't just go back and delete an old version, since newer revs depend on what has come before. In addition to saving disk space, this lets you quickly see what's changed between versions.

This should also apply when merging from a different branch. New files are added, changed files are merged - deltas stored - etc.

David Lively