Author: julianfoad
Date: Tue Nov 18 11:36:37 2014
New Revision: 1640313

URL: http://svn.apache.org/r1640313
Log:
On the 'move-tracking-2' branch: Make 'svnmover diff-e' recurse into
subbranches.

* subversion/svnmover/svnmover.c
  (svn_branch_diff_func_t): New.
  (svn_branch_diff_r): Parameterize the branch-diffing function.
  (execute): Use svn_branch_diff_r for 'diff-e' as well as for 'diff'.

Modified:
    subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c

Modified: subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c?rev=1640313&r1=1640312&r2=1640313&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c Tue Nov 
18 11:36:37 2014
@@ -935,11 +935,18 @@ get_subbranches(svn_branch_instance_t *b
   return result;
 }
 
+typedef svn_error_t *
+svn_branch_diff_func_t(svn_editor3_t *editor,
+                svn_branch_el_rev_id_t *left,
+                svn_branch_el_rev_id_t *right,
+                apr_pool_t *scratch_pool);
+
 /* Display differences, referring to paths, recursing into sub-branches */
 static svn_error_t *
 svn_branch_diff_r(svn_editor3_t *editor,
                   svn_branch_el_rev_id_t *left,
                   svn_branch_el_rev_id_t *right,
+                  svn_branch_diff_func_t diff_func,
                   apr_pool_t *scratch_pool)
 {
   apr_hash_t *subbranches_l, *subbranches_r, *subbranches_all;
@@ -966,7 +973,7 @@ svn_branch_diff_r(svn_editor3_t *editor,
              right->branch->sibling_defn->family->fid,
              svn_branch_get_root_rrpath(left->branch, scratch_pool),
              svn_branch_get_root_rrpath(right->branch, scratch_pool));
-      SVN_ERR(svn_branch_diff(editor, left, right, scratch_pool));
+      SVN_ERR(diff_func(editor, left, right, scratch_pool));
     }
 
   subbranches_l = get_subbranches(left ? left->branch : NULL,
@@ -1000,7 +1007,7 @@ svn_branch_diff_r(svn_editor3_t *editor,
         }
 
       /* recurse */
-      svn_branch_diff_r(editor, sub_left, sub_right, scratch_pool);
+      svn_branch_diff_r(editor, sub_left, sub_right, diff_func, scratch_pool);
     }
   return SVN_NO_ERROR;
 }
@@ -1208,6 +1215,7 @@ execute(const apr_array_header_t *action
             SVN_ERR(svn_branch_diff_r(editor,
                                       el_rev[0] /*from*/,
                                       el_rev[1] /*to*/,
+                                      svn_branch_diff,
                                       iterpool));
           }
           break;
@@ -1215,9 +1223,10 @@ execute(const apr_array_header_t *action
           VERIFY_EID_EXISTS("diff-e", 0);
           VERIFY_EID_EXISTS("diff-e", 1);
           {
-            SVN_ERR(svn_branch_diff_e(editor,
+            SVN_ERR(svn_branch_diff_r(editor,
                                       el_rev[0] /*from*/,
                                       el_rev[1] /*to*/,
+                                      svn_branch_diff_e,
                                       iterpool));
           }
           break;


Reply via email to