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

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

From: Greg Stein <gstein_at_gmail.com>
Date: Mon, 6 Feb 2012 15:38:39 -0500

On Mon, Feb 6, 2012 at 15:18, Hyrum K Wright <hyrum.wright_at_wandisco.com> wrote:
> On Mon, Feb 6, 2012 at 2:03 PM, Greg Stein <gstein_at_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
Received on 2012-02-06 21:39:12 CET

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