subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bert Huijben <>
Subject Re: git-svn "Temp file with moniker 'svn_delta' already in use" and skelta mode
Date Sat, 06 Jul 2013 07:30:39 GMT
Note that the commit logic in libsvn_client uses exactly the same driver pattern, but even
in a more extreme way: it opens all nodes before closing the first file that will receive
content changes.

Serf was only the first driver to do it this way in the other direction.


Sent from Windows Mail

From: Branko Čibej
Sent: ‎Saturday‎, ‎July‎ ‎6‎, ‎2013 ‎2‎:‎34‎ ‎AM
Cc: Subversion Development;

[Copying dev@ because it's related to a known issue that we document more loudly.]

On 06.07.2013 00:51, David Rothenberger wrote: 

I cannot reproduce this problem using command-line tools, but I was
able to do a trace of git-svn when it is failing and it looks to me
that the problem is in the order in which the SVN::Delta::Editor
(svn_delta_editor_t) function are being called.

The order I see is:
 1. open_root
 2. open_directory
 3. add_file
 4. apply_textdelta
 5. add_file
 6. apply_textdelta

The git-svn code is expecting a close_file call before the add_file
call in #5. It appears to me that the svn_delta_editor_t API [1]
requires this close_file call. It looks to me like this is Issue
#2932 [2].

Indeed it is.

And it is actually documented here:

and mentioned here:

In other words, this is a limitation of the Serf-based backend that has been around since
Subversion 1.4. I'm aware that it isn't documented as well as it should be, but the bulk-mode
workaround exists in part as a workaround for that, effectively disabling the more efficient
HTTPv2 protocol.

In the meantime, it might be a good idea to relax the restrictions in git-svn to account for
the way the HTTPv2 protocol works.

-- Brane

Branko Čibej | Director of Subversion 
WANdisco // Non-Stop Data 
View raw message