Author: stsp
Date: Mon Aug 18 14:22:22 2014
New Revision: 1618616

URL: http://svn.apache.org/r1618616
Log:
* subversion/libsvn_client/merge.c
  (merge_file_opened, merge_dir_opened): Preserve the merge-left node kind
   when updating a tree conflict involving a replacement.
  (merge_file_deleted): This function cannot tell if the deleted node is going
   to be replaced, so checking the 'add_is_replace' flag here is pointless.
   Record the merge-right node kind as 'none' a is appropriate for a deletion,
   and rely on merge_file_opened() and merge_dir_opened() to tweak node kind
   if necessary.

Pointed out by: rhuijben

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

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1618616&r1=1618615&r2=1618616&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Mon Aug 18 14:22:22 2014
@@ -1907,7 +1907,7 @@ merge_file_opened(void **new_file_baton,
           /* Update the tree conflict to store that this is a replace */
           SVN_ERR(record_tree_conflict(merge_b, local_abspath, pdb,
                                        old_tc->local_node_kind,
-                                       svn_node_none,
+                                       old_tc->merge_left_node_kind,
                                        svn_node_file,
                                        fb->tree_conflict_action,
                                        fb->tree_conflict_reason,
@@ -2455,9 +2455,7 @@ merge_file_deleted(const char *relpath,
       SVN_ERR(record_tree_conflict(merge_b, local_abspath, fb->parent_baton,
                                    svn_node_file,
                                    svn_node_file,
-                                   fb->add_is_replace
-                                     ? svn_node_file
-                                     : svn_node_none,
+                                   svn_node_none,
                                    svn_wc_conflict_action_delete,
                                    svn_wc_conflict_reason_edited,
                                    NULL, TRUE,
@@ -2713,7 +2711,7 @@ merge_dir_opened(void **new_dir_baton,
               /* Update the tree conflict to store that this is a replace */
               SVN_ERR(record_tree_conflict(merge_b, local_abspath, pdb,
                                            old_tc->local_node_kind,
-                                           svn_node_none,
+                                           old_tc->merge_left_node_kind,
                                            svn_node_dir,
                                            db->tree_conflict_action,
                                            db->tree_conflict_reason,


Reply via email to