Implemented tree delta compression in fast-import.
authorShawn O. Pearce <spearce@spearce.org>
Mon, 28 Aug 2006 16:22:50 +0000 (12:22 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 14 Jan 2007 07:15:10 +0000 (02:15 -0500)
commit4cabf8583f934260697a065186f3dce135834ede
tree3056d075bd11d41ebbc498dcb2ead89297caaaad
parent445b85999a309c8e5c7f928484c57325c280152e
Implemented tree delta compression in fast-import.

We now store for every tree entry two modes and two sha1 values;
the base (aka "version 0") and the current/new (aka "version 1").
When we generate a tree object we also regenerate the prior version
object and use that as our base object for a delta.  This strategy
saves a significant amount of memory as we can continue to use the
atom pool for file/directory names and only increases each tree
entry by an additional 24 bytes of memory.

Branches should automatically delta against their ancestor tree,
unless the ancestor tree is already at the delta chain limit.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
fast-import.c