> -----Original Message-----
> From: Ben Reser [mailto:b...@reser.org]
> Sent: donderdag 22 november 2012 02:52
> To: Bert Huijben
> Cc: Subversion Development
> Subject: Re: svn commit: r1411982 - in /subversion/branches/1.6.x: ./
STATUS
> subversion/libsvn_client/commit_util.c subversion/libsvn_fs_fs/fs_fs.c
> 
> First of all thanks for asking these questions, my effort to answer
> them gave me even more confidence in the changes.

<snip>

> No I don't think this change breaks anything for anyone.
> 
> We could remove the client change now as it really doesn't have any
> impact.  But it's a valid change for other reasons as mentioned above,
> so we might as well leave it.
> 
> Even without the client library change you're still touching the
> client.  The solution I'm using here is a fix to the fsfs layer.
> Which when using ra_local the client is the server.  Moving the fix up
> to mod_dav_svn is much harder.
> 
> Ultimately the problem here is that the fs is receiving the
> representation of a node via a window handler.  The window handler
> only has two things you can tell it.  1) Here is some data.  2) There
> is no more data.  As such there is no way for mod_dav_svn to
> communicate to the fs layer that the representation I sent you is
> incomplete.  Additionally, the whole thing is driven through the
> svndiff parsing code, which has an option (error_on_early_close) to
> say error if the svndiff looks incomplete.  If this option is true
> then the window handler is never called with NULL for the window
> (we've reached the end of the data).  Setting this flag to FALSE would
> make that call happen but then fsfs would have no idea that we feed it
> incomplete data, thus adding an invalid representation to the protorev
> file.
> 
> Long term the fix is probably refactoring some public interfaces.  But
> that's not a very attractive option for backport.  Nor am I in a huge
> hurry to do it since I think making these changes is going to cascade
> out into a lot of other code.

Thanks for this in-depth answer. 

The fact that it just improves the client further is the answer that I was
hoping for.
(Theoretically it is a separate improvement)


This explanation would make me add my +1 to the backport, but we already got
the required votes.

Thanks,
        Bert

Reply via email to