96
96
svn_revnum_t *original_revision,
97
97
const char *path_or_url,
98
98
const svn_opt_revision_t *revision,
99
svn_ra_session_t *ra_session,
99
100
svn_client_ctx_t *ctx,
100
101
apr_pool_t *result_pool,
101
102
apr_pool_t *scratch_pool)
103
104
svn_error_t *err;
104
105
copyfrom_info_t copyfrom_info = { 0 };
105
106
apr_pool_t *sesspool = svn_pool_create(scratch_pool);
106
svn_ra_session_t *ra_session;
107
107
svn_client__pathrev_t *at_loc;
108
const char *old_session_url = NULL;
109
110
copyfrom_info.is_first = TRUE;
110
111
copyfrom_info.path = NULL;
111
112
copyfrom_info.rev = SVN_INVALID_REVNUM;
112
113
copyfrom_info.pool = result_pool;
114
SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &at_loc,
117
SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &at_loc,
125
if (svn_path_is_url(path_or_url))
129
SVN_ERR(svn_client_url_from_path2(&url, path_or_url, ctx, sesspool,
133
return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
134
_("'%s' has no URL"), path_or_url);
137
SVN_ERR(svn_client__ensure_ra_session_url(&old_session_url, ra_session,
140
err = svn_client__resolve_rev_and_url(&at_loc, ra_session, path_or_url,
141
revision, revision, ctx,
144
/* On error reparent back (and return), otherwise reparent to new
146
SVN_ERR(svn_error_compose_create(
148
svn_ra_reparent(ra_session, err ? old_session_url
149
: at_loc->url, sesspool)));
119
152
/* Find the copy source. Walk the location segments to find the revision
120
153
at which this node was created (copied or added). */
124
157
copyfrom_info_receiver, ©from_info,
161
err = svn_error_compose_create(
163
svn_ra_reparent(ra_session, old_session_url, sesspool));
127
165
svn_pool_destroy(sesspool);
266
304
The limitations on TARGETS specified by svn_client_log5 are enforced here.
267
305
So TARGETS can only contain a single WC path or a URL and zero or more
268
relative paths -- anything else will raise an error.
306
relative paths -- anything else will raise an error.
270
308
PEG_REVISION, TARGETS, and CTX are as per svn_client_log5.
604
642
apr_array_header_t *log_segments,
605
643
svn_client__pathrev_t *actual_loc,
606
644
svn_ra_session_t *ra_session,
607
/* The following are as per svn_client_log5. */
645
/* The following are as per svn_client_log5. */
608
646
const apr_array_header_t *targets,
610
648
svn_boolean_t discover_changed_paths,
905
943
SVN_ERR(run_ra_get_log(revision_ranges, relative_targets, log_segments,
906
944
actual_loc, ra_session, targets, limit,
907
945
discover_changed_paths, strict_node_history,
908
include_merged_revisions, revprops, real_receiver,
909
real_receiver_baton, ctx, pool));
946
include_merged_revisions, revprops,
947
real_receiver, real_receiver_baton, ctx, pool));
911
949
return SVN_NO_ERROR;