Author: rinrab
Date: Thu Dec  5 19:09:12 2024
New Revision: 1922333

URL: http://svn.apache.org/viewvc?rev=1922333&view=rev
Log:
On the 'apply-processor' branch: Manually merge 1922266 from 'trunk', but
ignore changes in the do_file_merge() function.

* Open the root directory baton for each operation.

Modified:
    subversion/branches/apply-processor/   (props changed)
    
subversion/branches/apply-processor/subversion/libsvn_client/merge_processor.c

Propchange: subversion/branches/apply-processor/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1922266

Modified: 
subversion/branches/apply-processor/subversion/libsvn_client/merge_processor.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/apply-processor/subversion/libsvn_client/merge_processor.c?rev=1922333&r1=1922332&r2=1922333&view=diff
==============================================================================
--- 
subversion/branches/apply-processor/subversion/libsvn_client/merge_processor.c 
(original)
+++ 
subversion/branches/apply-processor/subversion/libsvn_client/merge_processor.c 
Thu Dec  5 19:09:12 2024
@@ -83,6 +83,9 @@ typedef struct merge_apply_processor_bat
   /* Description of merge target node */
   const svn_client__merge_target_t *target;
 
+  /* Directory baton for the root of the operation's target */
+  struct merge_dir_baton_t *target_dir_baton;
+
   /* The left and right URLs and revs.  */
   svn_client__merge_source_t merge_source;
 
@@ -1041,7 +1044,8 @@ merge_file_opened(void **new_file_baton,
                   apr_pool_t *scratch_pool)
 {
   merge_apply_processor_baton_t *merge_b = processor->baton;
-  struct merge_dir_baton_t *pdb = dir_baton;
+  struct merge_dir_baton_t *pdb =
+      dir_baton ? dir_baton : merge_b->target_dir_baton;
   struct merge_file_baton_t *fb = create_file_baton(result_pool);
   const char *local_abspath = svn_dirent_join(merge_b->target->abspath,
                                               relpath, scratch_pool);
@@ -1837,7 +1841,8 @@ merge_dir_opened(void **new_dir_baton,
 {
   merge_apply_processor_baton_t *merge_b = processor->baton;
   struct merge_dir_baton_t *db = create_dir_baton(result_pool);
-  struct merge_dir_baton_t *pdb = parent_dir_baton;
+  struct merge_dir_baton_t *pdb =
+      parent_dir_baton ? parent_dir_baton : merge_b->target_dir_baton;
   const char *local_abspath;
 
   *new_dir_baton = db;
@@ -2743,6 +2748,7 @@ svn_client__apply_processor_create(const
     apr_pcalloc(result_pool, sizeof(*baton));
 
   baton->target = target;
+  baton->target_dir_baton = create_dir_baton(result_pool);
   baton->merge_source = *source;
   baton->diff3_cmd = diff3_cmd;
   baton->merge_options = merge_options;


Reply via email to