You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2013/01/08 15:50:41 UTC

svn commit: r1430310 - /subversion/trunk/subversion/libsvn_client/merge.c

Author: julianfoad
Date: Tue Jan  8 14:50:41 2013
New Revision: 1430310

URL: http://svn.apache.org/viewvc?rev=1430310&view=rev
Log:
Fix a foreign-repository reverse merge bug that I happened to notice by
inspection.  Foreign repository mergeinfo could have affected the target
mergeinfo in this case.

* subversion/libsvn_client/merge.c
  (prepare_merge_props_changed): Filter out any foreign repository mergeinfo
    unconditionally. This filtering was wrongly being skipped for a reverse
    merge.

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=1430310&r1=1430309&r2=1430310&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Tue Jan  8 14:50:41 2013
@@ -1307,6 +1307,13 @@ prepare_merge_props_changed(const apr_ar
 
   if (props->nelts)
     {
+      /* Issue #3383: We don't want mergeinfo from a foreign repos.
+
+         If this is a merge from a foreign repository we must strip all
+         incoming mergeinfo (including mergeinfo deletions). */
+      if (! merge_b->same_repos)
+        SVN_ERR(omit_mergeinfo_changes(&props, props, result_pool));
+
       /* If this is a forward merge then don't add new mergeinfo to
          PATH that is already part of PATH's own history, see
          http://svn.haxx.se/dev/archive-2008-09/0006.shtml.  If the
@@ -1315,13 +1322,7 @@ prepare_merge_props_changed(const apr_ar
       if (merge_b->merge_source.loc1->rev < merge_b->merge_source.loc2->rev
           || !merge_b->merge_source.ancestral)
         {
-          /* Issue #3383: We don't want mergeinfo from a foreign repos.
-
-             If this is a merge from a foreign repository we must strip all
-             incoming mergeinfo (including mergeinfo deletions). */
-          if (! merge_b->same_repos)
-            SVN_ERR(omit_mergeinfo_changes(&props, props, result_pool));
-          else if (HONOR_MERGEINFO(merge_b) || merge_b->reintegrate_merge)
+          if (HONOR_MERGEINFO(merge_b) || merge_b->reintegrate_merge)
             SVN_ERR(filter_self_referential_mergeinfo(&props,
                                                       local_abspath,
                                                       merge_b->ra_session2,