You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/10/20 21:21:08 UTC

svn commit: r1187000 - /subversion/trunk/subversion/libsvn_delta/compat.c

Author: hwright
Date: Thu Oct 20 19:21:08 2011
New Revision: 1187000

URL: http://svn.apache.org/viewvc?rev=1187000&view=rev
Log:
Ev2 shims: actually open the edit root, and optionally abort if there is a
problem with the delta editor drive.

With this change, the test suite actually runs!  (Only 1168 failures!)

* subversion/libsvn_delta/compat.c
  (complete_cb): Open the edit root, and trap and process errors.

Modified:
    subversion/trunk/subversion/libsvn_delta/compat.c

Modified: subversion/trunk/subversion/libsvn_delta/compat.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_delta/compat.c?rev=1187000&r1=1186999&r2=1187000&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_delta/compat.c (original)
+++ subversion/trunk/subversion/libsvn_delta/compat.c Thu Oct 20 19:21:08 2011
@@ -933,12 +933,19 @@ complete_cb(void *baton,
             apr_pool_t *scratch_pool)
 {
   struct editor_baton *eb = baton;
+  svn_error_t *err;
+
+  SVN_ERR(eb->deditor->open_root(eb->dedit_baton, SVN_INVALID_REVNUM,
+                                 eb->edit_pool, &eb->root.baton));
 
   /* Drive the tree we've created. */
-  SVN_ERR(drive(&eb->root, eb->deditor, scratch_pool));
+  err = drive(&eb->root, eb->deditor, scratch_pool);
+  if (!err)
+     err = eb->deditor->close_edit(eb->dedit_baton, scratch_pool);
+  if (err)
+    svn_error_clear(eb->deditor->abort_edit(eb->dedit_baton, scratch_pool));
 
-  return svn_error_trace(eb->deditor->close_edit(eb->dedit_baton,
-                                                 scratch_pool));
+  return svn_error_trace(err);
 }
 
 /* This implements svn_editor_cb_abort_t */