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,