You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2011/01/26 03:39:56 UTC

svn commit: r1063573 - /subversion/trunk/subversion/libsvn_repos/replay.c

Author: danielsh
Date: Wed Jan 26 02:39:55 2011
New Revision: 1063573

URL: http://svn.apache.org/viewvc?rev=1063573&view=rev
Log:
Fix the second part of issue #3641.

Note: this passes tests, but in pre-commit review I suspect the new 'if'
could be improved, so please review.

* subversion/libsvn_repos/replay.c
  (add_subdir):
    Don't call add_subdir() when there is no history to convert
    to a history-less add.  (Thanks, docstrings.)

Modified:
    subversion/trunk/subversion/libsvn_repos/replay.c

Modified: subversion/trunk/subversion/libsvn_repos/replay.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/replay.c?rev=1063573&r1=1063572&r2=1063573&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/replay.c (original)
+++ subversion/trunk/subversion/libsvn_repos/replay.c Wed Jan 26 02:39:55 2011
@@ -269,11 +269,21 @@ add_subdir(svn_fs_root_t *source_root,
            * I think not; when path_driver_cb_func() calls add_subdir(), it
            * passes SOURCE_ROOT and SOURCE_PATH that are unreadable.
            */
-          SVN_ERR(add_subdir(new_source_root, target_root, editor, edit_baton,
-                             new_path, *dir_baton,
-                             new_source_path,
-                             authz_read_func, authz_read_baton,
-                             changed_paths, subpool, &new_dir_baton));
+          if (change && change->change_kind == svn_fs_path_change_replace
+              && copyfrom_path == NULL)
+            {
+              SVN_ERR(editor->add_directory(new_path, *dir_baton,
+                                            NULL, SVN_INVALID_REVNUM,
+                                            subpool, &new_dir_baton));
+            }
+          else
+            {
+              SVN_ERR(add_subdir(new_source_root, target_root, editor, edit_baton,
+                                 new_path, *dir_baton,
+                                 new_source_path,
+                                 authz_read_func, authz_read_baton,
+                                 changed_paths, subpool, &new_dir_baton));
+            }
 
           SVN_ERR(editor->close_directory(new_dir_baton, subpool));
         }