You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/07/02 19:42:18 UTC

svn commit: r1356374 - in /subversion/trunk/subversion: libsvn_client/merge.c tests/cmdline/merge_tree_conflict_tests.py

Author: rhuijben
Date: Mon Jul  2 17:42:17 2012
New Revision: 1356374

URL: http://svn.apache.org/viewvc?rev=1356374&view=rev
Log:
When merging a directory addition on top of a copied/added directory we should
just set a tree conflict instead of *also* applying the property changes of
the incoming directory.

This specific case was found via the conflict handling test that I'll add in a
separate commit.

* subversion/libsvn_client/merge.c
  (merge_dir_added): Skip changes on descendants on an add-add conflict.

* subversion/tests/cmdline/merge_tree_conflict_tests.py
  (merge_replace_causes_tree_conflict): Update expected result. Remove
    comment that the original result is unexpected.

Modified:
    subversion/trunk/subversion/libsvn_client/merge.c
    subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1356374&r1=1356373&r2=1356374&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Mon Jul  2 17:42:17 2012
@@ -2396,6 +2396,10 @@ merge_dir_added(svn_wc_notify_state_t *s
                                            reason));
               if (tree_conflicted)
                 *tree_conflicted = TRUE;
+              if (skip)
+                *skip = TRUE;
+              if (skip_children)
+                *skip_children = TRUE;
               if (state)
                 *state = svn_wc_notify_state_obstructed;
             }

Modified: subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1356374&r1=1356373&r2=1356374&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py Mon Jul  2 17:42:17 2012
@@ -1738,8 +1738,7 @@ def merge_replace_causes_tree_conflict(s
   expected_status.tweak('A', status=' M')
   expected_status.tweak('A/D/G/pi', 'A/mu', status='M ', treeconflict='C')
   expected_status.tweak('A/D/H', status=' M', treeconflict='C')
-  ### A/B/E gets both a property and tree conflict flagged. Is this OK?
-  expected_status.tweak('A/B/E', status=' C', treeconflict='C')
+  expected_status.tweak('A/B/E', status=' M', treeconflict='C')
 
   actions.run_and_verify_status(wc_dir, expected_status)