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 2013/01/31 20:13:46 UTC

svn commit: r1441143 - in /subversion/trunk/subversion: libsvn_client/merge.c tests/cmdline/merge_authz_tests.py

Author: rhuijben
Date: Thu Jan 31 19:13:46 2013
New Revision: 1441143

URL: http://svn.apache.org/viewvc?rev=1441143&view=rev
Log:
Don't unconditionally put to be skipped paths in the skipped hash of the merge
handling as that affects the mergeinfo recording.

This fixes a merge_authz test failure.

* subversion/libsvn_client/merge.c
  (mark_dir_edited,
   mark_file_edited): When skipping, remember we skipped.

  (merge_file_opened,
   merge_dir_opened): Don't remember a skip on depth filtered roots
     directly.

* subversion/tests/cmdline/merge_authz_tests.py
  (mergeinfo_and_skipped_paths): Tweak expected notifications.

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

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1441143&r1=1441142&r2=1441143&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu Jan 31 19:13:46 2013
@@ -1775,8 +1775,11 @@ mark_dir_edited(merge_cmd_baton_t *merge
                                         scratch_pool);
         }
 
-      /* We don't register the node in merge_b->skipped_abspaths here, as the
-         node itself is not skipped: the operation on a descendant is */
+      if (merge_b->merge_source.ancestral
+          || merge_b->reintegrate_merge)
+        {
+          store_path(merge_b->skipped_abspaths, local_abspath);
+        }
     }
   else if (db->tree_conflict_reason == CONFLICT_REASON_EXCLUDED)
     {
@@ -1873,6 +1876,12 @@ mark_file_edited(merge_cmd_baton_t *merg
                                         notify,
                                         scratch_pool);
         }
+
+      if (merge_b->merge_source.ancestral
+          || merge_b->reintegrate_merge)
+        {
+          store_path(merge_b->skipped_abspaths, local_abspath);
+        }
     }
   else if (fb->tree_conflict_reason != CONFLICT_REASON_NONE
            && fb->tree_conflict_reason != CONFLICT_REASON_EXCLUDED)
@@ -2007,13 +2016,6 @@ merge_file_opened(void **new_file_baton,
 
                   fb->tree_conflict_reason = CONFLICT_REASON_SKIP;
                   fb->skip_reason = svn_wc_notify_state_missing;
-
-                  if (merge_b->merge_source.ancestral
-                      || merge_b->reintegrate_merge)
-                    {
-                      store_path(merge_b->skipped_abspaths, local_abspath);
-                    }
-
                   return SVN_NO_ERROR;
                 }
             }
@@ -2724,12 +2726,6 @@ merge_dir_opened(void **new_dir_baton,
                   db->tree_conflict_reason = CONFLICT_REASON_SKIP;
                   db->skip_reason = svn_wc_notify_state_missing;
 
-                  if (merge_b->merge_source.ancestral
-                      || merge_b->reintegrate_merge)
-                    {
-                      store_path(merge_b->skipped_abspaths, local_abspath);
-                    }
-
                   return SVN_NO_ERROR;
                 }
             }
@@ -9567,9 +9563,6 @@ do_merge(apr_hash_t **modified_subtrees,
               *modified_subtrees =
                   apr_hash_overlay(result_pool, *modified_subtrees,
                                    merge_cmd_baton.skipped_abspaths);
-              *modified_subtrees =
-                  apr_hash_overlay(result_pool, *modified_subtrees,
-                                   merge_cmd_baton.tree_conflicted_abspaths);
             }
         }
 

Modified: subversion/trunk/subversion/tests/cmdline/merge_authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_authz_tests.py?rev=1441143&r1=1441142&r2=1441143&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_authz_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_authz_tests.py Thu Jan 31 19:13:46 2013
@@ -212,6 +212,8 @@ def mergeinfo_and_skipped_paths(sbox):
   # always takes precedence in terms of getting *non*-inheritable mergeinfo.
   expected_output = wc.State(A_COPY_2_path, {
     'D/H/omega' : Item(status='U '),
+    # Below the skip
+    'D/G/rho'   : Item(status='  ', treeconflict='U'),
     })
   expected_mergeinfo_output = wc.State(A_COPY_2_path, {
     ''          : Item(status=' U'),
@@ -258,7 +260,6 @@ def mergeinfo_and_skipped_paths(sbox):
   expected_skip = wc.State(A_COPY_2_path, {
     'B/E'     : Item(verb='Skipped missing target'),
     'D/G'     : Item(verb='Skipped missing target'),
-    'D/G/rho' : Item(verb='Skipped missing target'),
     'D/H/psi' : Item(verb='Skipped missing target'),
     })
   svntest.actions.run_and_verify_merge(A_COPY_2_path, '4', '8',