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;