Author: rinrab
Date: Fri May 9 14:08:38 2025
New Revision: 1925477
URL: http://svn.apache.org/viewvc?rev=1925477&view=rev
Log:
Open patch file outside of the apply_patches() routine, but accept
svn_patch_file_t instead.
* subversion/libsvn_client/patch.c
(apply_patches): Change arguments so we require a patch_file instead of
a local path and remove the code that opens and closes the patch file.
(svn_client_patch): Open and intialise the patch file.
No functional changes. Yet.
Modified:
subversion/trunk/subversion/libsvn_client/patch.c
Modified: subversion/trunk/subversion/libsvn_client/patch.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/patch.c?rev=1925477&r1=1925476&r2=1925477&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/patch.c (original)
+++ subversion/trunk/subversion/libsvn_client/patch.c Fri May 9 14:08:38 2025
@@ -3613,8 +3613,8 @@ check_ancestor_delete(const char *delete
/* This function is the main entry point into the patch code. */
static svn_error_t *
-apply_patches(/* The path to the patch file. */
- const char *patch_abspath,
+apply_patches(/* The descriptor of the patch file. */
+ svn_patch_file_t *patch_file,
/* The abspath to the working copy the patch should be applied to. */
const char *root_abspath,
/* Indicates whether we're doing a dry run. */
@@ -3636,12 +3636,8 @@ apply_patches(/* The path to the patch f
{
svn_patch_t *patch;
apr_pool_t *iterpool;
- svn_patch_file_t *patch_file;
apr_array_header_t *targets_info;
- /* Try to open the patch file. */
- SVN_ERR(svn_diff_open_patch_file(&patch_file, patch_abspath, scratch_pool));
-
/* Apply patches. */
targets_info = apr_array_make(scratch_pool, 0,
sizeof(patch_target_info_t *));
@@ -3720,7 +3716,6 @@ apply_patches(/* The path to the patch f
}
while (patch);
- SVN_ERR(svn_diff_close_patch_file(patch_file, iterpool));
svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
@@ -3740,6 +3735,7 @@ svn_client_patch(const char *patch_abspa
apr_pool_t *scratch_pool)
{
svn_node_kind_t kind;
+ svn_patch_file_t *patch_file;
if (strip_count < 0)
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
@@ -3775,10 +3771,15 @@ svn_client_patch(const char *patch_abspa
svn_dirent_local_style(wc_dir_abspath,
scratch_pool));
+ SVN_ERR(svn_diff_open_patch_file(&patch_file, patch_abspath, scratch_pool));
+
SVN_WC__CALL_WITH_WRITE_LOCK(
- apply_patches(patch_abspath, wc_dir_abspath, dry_run, strip_count,
+ apply_patches(patch_file, wc_dir_abspath, dry_run, strip_count,
reverse, ignore_whitespace, remove_tempfiles,
patch_func, patch_baton, ctx, scratch_pool),
ctx->wc_ctx, wc_dir_abspath, FALSE /* lock_anchor */, scratch_pool);
+
+ SVN_ERR(svn_diff_close_patch_file(patch_file, scratch_pool));
+
return SVN_NO_ERROR;
}
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.