Author: stsp
Date: Tue Apr 10 16:06:19 2012
New Revision: 1311811

URL: http://svn.apache.org/viewvc?rev=1311811&view=rev
Log:
* subversion/libsvn_client/diff.c
  (arbitrary_diff_walker): Remove useless and wrong special case code for
   a file replacing a directory. This case is already handled further below,
   while comparing dirents. Also, the file would need to be shown as added,
   not deleted, so this special case code was producing wrong output.

Modified:
    subversion/trunk/subversion/libsvn_client/diff.c

Modified: subversion/trunk/subversion/libsvn_client/diff.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/diff.c?rev=1311811&r1=1311810&r2=1311811&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/diff.c Tue Apr 10 16:06:19 2012
@@ -2055,21 +2055,6 @@ arbitrary_diff_walker(void *baton, const
   local_abspath2 = svn_dirent_join(b->root2_abspath, child_relpath,
                                    scratch_pool);
   SVN_ERR(svn_io_check_resolved_path(local_abspath2, &kind2, scratch_pool));
-  if (kind2 == svn_node_file)
-    {
-      /* Show file as deleted (being replaced by a directory). */
-      SVN_ERR(do_arbitrary_files_diff(local_abspath2, b->empty_file_abspath,
-                                      svn_dirent_skip_ancestor(
-                                        b->root2_abspath,
-                                        local_abspath2),
-                                      FALSE, TRUE,
-                                      b->callbacks, b->callback_baton,
-                                      b->ctx, scratch_pool));
-      dirents2 = apr_hash_make(scratch_pool);
-    }
-
-  if (kind2 == svn_node_none)
-    dirents2 = apr_hash_make(scratch_pool);
 
   if (kind2 == svn_node_dir)
     {
@@ -2095,6 +2080,8 @@ arbitrary_diff_walker(void *baton, const
                                   TRUE, /* only_check_type */
                                   scratch_pool, scratch_pool));
     }
+  else
+    dirents2 = apr_hash_make(scratch_pool);
 
   /* Compare dirents1 to dirents2 and show added/deleted/changed files. */
   merged_dirents = apr_hash_merge(scratch_pool, dirents1, dirents2,


Reply via email to