You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/09/05 21:08:03 UTC

svn commit: r1165396 - in /subversion/branches/1.7.x: ./ STATUS subversion/libsvn_client/merge.c

Author: hwright
Date: Mon Sep  5 19:08:02 2011
New Revision: 1165396

URL: http://svn.apache.org/viewvc?rev=1165396&view=rev
Log:
Merge r1163792 from trunk:

 * r1163792
   Follow-up to the issue #3975 fixes which were backported in r1161547.
   Justification:
      Some merge use cases fail due to the issue #3975 fixes.  However,
      this failure is legitimate in the sense that it should be expected
      and cleared, and the merge allowed to continue.  For details, see
      http://subversion.tigris.org/issues/show_bug.cgi?id=3975#desc6
   Notes:
     r1163792 simply catches and clears an error.  While this change needs
     to get into 1.7.0 (or the issue #3975 fixes need to come out), given
     the simplicity of the change I don't believe this constitutes a
     destabilizing change, so IMO does not require a restart of the soak
     for RC2.
   Votes:
     +1: pburba, stsp, philip

Modified:
    subversion/branches/1.7.x/   (props changed)
    subversion/branches/1.7.x/STATUS
    subversion/branches/1.7.x/subversion/libsvn_client/merge.c

Propchange: subversion/branches/1.7.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep  5 19:08:02 2011
@@ -61,4 +61,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1147882,1148071,1148083,1148094,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149343,1149371-1149372,1149377,1149398,1149401,1149539,1149572,1149627,1149675,1149701,1149713,1150242,1150254,1150260-1150261,1150266,1150302,1150327,1150368,1150372,1150441,1150506,1150812,1150853,1151036,1151177,1151610,1151906,1151911,1152129,1152140,1152189-1152190,1152267,1152282,1152286,1152726,1152809,1153138,1153141,1153416,1153799,1153807,1153968,1154009,1154023,1154115,1154119,1154121,1154144,1154155,1154159,1154165,1154215,1154225,1154273,1154461,1154717-1154718,1154733,1154908,1154982,1155015,1155044,1155124,1155131,1155160,1155313,1155334,1155391,1155404,1156085,1156098,1156216,1156218,1156312,1156527,1156717,1156721,1156750,1156827,1156838,1157416,1158187,115
 8193-1158194,1158196,1158201,1158207,1158209-1158210,1158217,1158285,1158288,1158303,1158309,1158407,1158419,1158421,1158436,1158455,1158616-1158617,1158634,1158854,1158875,1158886,1158893,1158896,1158919,1158924,1158963,1159093,1159098,1159101,1159132,1159136,1159148,1159230,1159275,1159400,1159686,1159760,1159772,1160605,1160671,1160682,1160704-1160705,1160756,1161063,1161080,1161185,1161210,1162024,1162033,1162201,1162516,1162880,1164517,1164535,1164554,1164580
+/subversion/trunk:1146013,1146121,1146219,1146222,1146274,1146492,1146555,1146606,1146620,1146684,1146781,1146832,1146834,1146870,1146899,1146904,1147293,1147309,1147882,1148071,1148083,1148094,1148131,1148374,1148424,1148566,1148588,1148853,1148877,1148882,1148936,1149105,1149141,1149160,1149228,1149240,1149343,1149371-1149372,1149377,1149398,1149401,1149539,1149572,1149627,1149675,1149701,1149713,1150242,1150254,1150260-1150261,1150266,1150302,1150327,1150368,1150372,1150441,1150506,1150812,1150853,1151036,1151177,1151610,1151906,1151911,1152129,1152140,1152189-1152190,1152267,1152282,1152286,1152726,1152809,1153138,1153141,1153416,1153799,1153807,1153968,1154009,1154023,1154115,1154119,1154121,1154144,1154155,1154159,1154165,1154215,1154225,1154273,1154461,1154717-1154718,1154733,1154908,1154982,1155015,1155044,1155124,1155131,1155160,1155313,1155334,1155391,1155404,1156085,1156098,1156216,1156218,1156312,1156527,1156717,1156721,1156750,1156827,1156838,1157416,1158187,115
 8193-1158194,1158196,1158201,1158207,1158209-1158210,1158217,1158285,1158288,1158303,1158309,1158407,1158419,1158421,1158436,1158455,1158616-1158617,1158634,1158854,1158875,1158886,1158893,1158896,1158919,1158924,1158963,1159093,1159098,1159101,1159132,1159136,1159148,1159230,1159275,1159400,1159686,1159760,1159772,1160605,1160671,1160682,1160704-1160705,1160756,1161063,1161080,1161185,1161210,1162024,1162033,1162201,1162516,1162880,1163792,1164517,1164535,1164554,1164580

Modified: subversion/branches/1.7.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1165396&r1=1165395&r2=1165396&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Mon Sep  5 19:08:02 2011
@@ -177,19 +177,3 @@ Approved changes:
      (The other editors just ignore absent paths)
    Votes:
      +1: rhuijben, gstein, philip
-
- * r1163792
-   Follow-up to the issue #3975 fixes which were backported in r1161547.
-   Justification:
-      Some merge use cases fail due to the issue #3975 fixes.  However,
-      this failure is legitimate in the sense that it should be expected
-      and cleared, and the merge allowed to continue.  For details, see
-      http://subversion.tigris.org/issues/show_bug.cgi?id=3975#desc6
-   Notes:
-     r1163792 simply catches and clears an error.  While this change needs
-     to get into 1.7.0 (or the issue #3975 fixes need to come out), given
-     the simplicity of the change I don't believe this constitutes a
-     destabilizing change, so IMO does not require a restart of the soak
-     for RC2.
-   Votes:
-     +1: pburba, stsp, philip

Modified: subversion/branches/1.7.x/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/libsvn_client/merge.c?rev=1165396&r1=1165395&r2=1165396&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/1.7.x/subversion/libsvn_client/merge.c Mon Sep  5 19:08:02 2011
@@ -7697,6 +7697,7 @@ record_mergeinfo_for_dir_merge(svn_merge
               && (!merge_b->record_only || merge_b->reintegrate_merge)
               && (!is_rollback))
             {
+              svn_error_t *err;
               svn_opt_revision_t peg_revision;
               svn_mergeinfo_t subtree_history_as_mergeinfo;
               apr_array_header_t *child_merge_src_rangelist;
@@ -7719,26 +7720,40 @@ record_mergeinfo_for_dir_merge(svn_merge
                                                         merge_b->ra_session2,
                                                         subtree_mergeinfo_url,
                                                         iterpool));
-              SVN_ERR(svn_client__get_history_as_mergeinfo(
+              err = svn_client__get_history_as_mergeinfo(
                 &subtree_history_as_mergeinfo, NULL,
                 subtree_mergeinfo_url, &peg_revision,
                 MAX(merged_range->start, merged_range->end),
                 MIN(merged_range->start, merged_range->end),
-                merge_b->ra_session2, merge_b->ctx, iterpool));
+                merge_b->ra_session2, merge_b->ctx, iterpool);
+
+              /* If CHILD is a subtree it may have been deleted prior to
+                 MERGED_RANGE->END so the above call to get its history
+                 will fail. */
+              if (err)
+                {
+                  if (err->apr_err != SVN_ERR_FS_NOT_FOUND)
+                      return svn_error_trace(err);
+                  svn_error_clear(err);
+                }
+              else
+                {
+                  child_merge_src_rangelist = apr_hash_get(
+                    subtree_history_as_mergeinfo,
+                    child_merge_src_canon_path,
+                    APR_HASH_KEY_STRING);
+                  SVN_ERR(svn_rangelist_intersect(&child_merge_rangelist,
+                                                  child_merge_rangelist,
+                                                  child_merge_src_rangelist,
+                                                  FALSE, iterpool));
+                  if (!rangelist_inheritance)
+                    svn_rangelist__set_inheritance(child_merge_rangelist,
+                                                   FALSE);
+                }
 
               if (old_session_url)
                 SVN_ERR(svn_ra_reparent(merge_b->ra_session2,
                                         old_session_url, iterpool));
-              child_merge_src_rangelist = apr_hash_get(
-                subtree_history_as_mergeinfo,
-                child_merge_src_canon_path,
-                APR_HASH_KEY_STRING);
-              SVN_ERR(svn_rangelist_intersect(&child_merge_rangelist,
-                                              child_merge_rangelist,
-                                              child_merge_src_rangelist,
-                                              FALSE, iterpool));
-              if (!rangelist_inheritance)
-                svn_rangelist__set_inheritance(child_merge_rangelist, FALSE);
             }
 
           apr_hash_set(child_merges, child->abspath, APR_HASH_KEY_STRING,