svn commit: r1922333 - in /subversion/branches/apply-processor: ./ subversion/libsvn_client/merge_processor.c

[email protected]
Newsgroups gmane.comp.version-control.subversion.svn
Message-ID <[email protected]>
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;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.