subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <gst...@gmail.com>
Subject Re: svn commit: r1241097 - in /subversion/trunk/subversion: libsvn_client/repos_diff.c libsvn_delta/compat.c libsvn_fs_base/tree.c libsvn_fs_fs/tree.c libsvn_wc/externals.c libsvn_wc/update_editor.c
Date Mon, 06 Feb 2012 20:38:39 GMT
On Mon, Feb 6, 2012 at 15:18, Hyrum K Wright <hyrum.wright@wandisco.com> wrote:
> On Mon, Feb 6, 2012 at 2:03 PM, Greg Stein <gstein@gmail.com> wrote:
>...
>> If the shim sends a delta against the empty-stream, then how can the
>> Ev1 receiver properly apply that? Won't the receiver use some selected
>> base contents? ie. NOT the empty stream?
>>
>> I'm thinking of the delta application to a base. How can that possibly
>> work, if the shim creates a delta against the empty stream?
>
> The shim uses svn_txdelta_send_stream() to send the contents stream to
> the receiver's apply_textdelta() handler.  svn_txdelta_send_stream()
> doesn't use a source stream: "This is effectively a 'copy' operation,
> resulting in delta windows that make the target equivalent to the
> stream."

Ah ha!! Got it. Thanks.

> I haven't looked at the implementation of svn_txdelta_send_stream(),
> but my guess is that it just feeds delta-window-size chunks of data to
> the window handler from the source, for which it obviously doesn't
> need a base.

Unfortunately... no. There is a comment that it *should* do that, but
right now it does a full-on diff against the empty stream.

Cheers,
-g

Mime
View raw message