vcs-svn: read the preimage when applying deltas
authorJonathan Nieder <jrnieder@gmail.com>
Wed, 13 Oct 2010 09:30:37 +0000 (04:30 -0500)
committerJonathan Nieder <jrnieder@gmail.com>
Mon, 28 Mar 2011 03:50:01 +0000 (22:50 -0500)
commitbcd254621f9a98794cdc32906db10af7135824c4
treedd511d4436cdb4e0c4941654d8cfd96367f1ed72
parent252712111fad127db365e3dd764309fe5658679a
vcs-svn: read the preimage when applying deltas

The source view offset heading each svndiff0 window represents a
number of bytes past the beginning of the preimage.  Together with the
source view length, it dictates to the delta applier what portion of
the preimage instructions will refer to.  Read that portion right away
using the sliding window code.

Maybe some day we will use mmap to read data more lazily.

Subversion's implementation tolerates source view offsets pointing
past the end of the preimage file but we do not, for simplicity.

This does not teach the delta applier to read instructions or copy
data from the source view.  Deltas that could produce nonempty output
will still be rejected.

Improved-by: Ramkumar Ramachandra <artagnon@gmail.com>
Improved-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Ramkumar Ramachandra <artagnon@gmail.com>
t/t9011-svn-da.sh
vcs-svn/svndiff.c