subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pbu...@apache.org
Subject svn commit: r1465677 - /subversion/trunk/subversion/libsvn_client/merge.c
Date Mon, 08 Apr 2013 16:25:18 GMT
Author: pburba
Date: Mon Apr  8 16:25:18 2013
New Revision: 1465677

URL: http://svn.apache.org/r1465677
Log:
Another automatic merge optimization.

* subversion/libsvn_client/merge.c:
  (find_last_merged_location): Limit the log range requested when finding
   the oldest eligible revision.

   

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=1465677&r1=1465676&r2=1465677&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Mon Apr  8 16:25:18 2013
@@ -12107,12 +12107,22 @@ find_last_merged_location(svn_client__pa
   else
     {
       /* One or more revisions have already been completely merged from
-         SOURCE_BRANCH to TARGET, now find the oldest revision which is
-         still eligible to be merged, if such exists. */
+         SOURCE_BRANCH to TARGET, now find the oldest revision, older
+         than the youngest merged revision, which is still eligible to
+         be merged, if such exists. */
       branch_history_t *contiguous_source;
       svn_revnum_t base_rev;
       svn_revnum_t oldest_eligible_rev = SVN_INVALID_REVNUM;
 
+      /* If the only revisions eligible are younger than the youngest merged
+         revision we can simply assume that the youngest eligible revision
+         is the youngest merged revision.  Obviously this may not be true!
+         The revisions between the youngest merged revision and the tip of
+         the branch may have several inoperative revisions -- they may *all*
+         be inoperative revisions!  But for the purpose of this function
+         (i.e. finding the youngest revision after the YCA where all revs have
+         been merged) that doesn't matter. */
+      source_end_rev.value.number = youngest_merged_rev;
       SVN_ERR(short_circuit_mergeinfo_log(FALSE, /* Find eligible */
                                           target->url, &target_opt_rev,
                                           source_branch->tip->url,



Mime
View raw message