Subversion
|
Functions | |
svn_error_t * | svn_client_get_merging_summary (svn_boolean_t *needs_reintegration, const char **yca_url, svn_revnum_t *yca_rev, const char **base_url, svn_revnum_t *base_rev, const char **right_url, svn_revnum_t *right_rev, const char **target_url, svn_revnum_t *target_rev, const char **repos_root_url, const char *source_path_or_url, const svn_opt_revision_t *source_revision, const char *target_path_or_url, const svn_opt_revision_t *target_revision, svn_client_ctx_t *ctx, apr_pool_t *result_pool, apr_pool_t *scratch_pool) |
Get information about the state of merging between two branches. More... | |
svn_error_t * | svn_client_merge5 (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_mergeinfo, svn_boolean_t diff_ignore_ancestry, svn_boolean_t force_delete, svn_boolean_t record_only, svn_boolean_t dry_run, svn_boolean_t allow_mixed_rev, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Merge changes from source1/revision1 to source2/revision2 into the working-copy path target_wcpath. More... | |
svn_error_t * | svn_client_merge4 (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t force_delete, svn_boolean_t record_only, svn_boolean_t dry_run, svn_boolean_t allow_mixed_rev, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge5(), but the single ignore_ancestry parameter maps to both ignore_mergeinfo and diff_ignore_ancestry . More... | |
svn_error_t * | svn_client_merge3 (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t record_only, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge4(), but with allow_mixed_rev set to TRUE . More... | |
svn_error_t * | svn_client_merge2 (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge3(), but with record_only set to FALSE , and depth set according to recurse: if recurse is TRUE, set depth to svn_depth_infinity, if recurse is FALSE, set depth to svn_depth_files. More... | |
svn_error_t * | svn_client_merge (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge2(), but with merge_options set to NULL. More... | |
svn_error_t * | svn_client_merge_reintegrate (const char *source_path_or_url, const svn_opt_revision_t *source_peg_revision, const char *target_wcpath, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Perform a reintegration merge of source_path_or_url at source_peg_revision into target_wcpath. More... | |
svn_error_t * | svn_client_merge_peg5 (const char *source_path_or_url, const apr_array_header_t *ranges_to_merge, const svn_opt_revision_t *source_peg_revision, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_mergeinfo, svn_boolean_t diff_ignore_ancestry, svn_boolean_t force_delete, svn_boolean_t record_only, svn_boolean_t dry_run, svn_boolean_t allow_mixed_rev, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Merge changes from the source branch identified by source_path_or_url in peg revision source_peg_revision, into the target branch working copy at target_wcpath. More... | |
svn_error_t * | svn_client_merge_peg4 (const char *source_path_or_url, const apr_array_header_t *ranges_to_merge, const svn_opt_revision_t *source_peg_revision, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t force_delete, svn_boolean_t record_only, svn_boolean_t dry_run, svn_boolean_t allow_mixed_rev, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge_peg5(), but automatic merge is not available (ranges_to_merge must not be NULL), and the single ignore_ancestry parameter maps to both ignore_mergeinfo and diff_ignore_ancestry . More... | |
svn_error_t * | svn_client_merge_peg3 (const char *source, const apr_array_header_t *ranges_to_merge, const svn_opt_revision_t *peg_revision, const char *target_wcpath, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t record_only, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge_peg4(), but with allow_mixed_rev set to TRUE . More... | |
svn_error_t * | svn_client_merge_peg2 (const char *source, const svn_opt_revision_t *revision1, const svn_opt_revision_t *revision2, const svn_opt_revision_t *peg_revision, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge_peg3(), but with record_only set to FALSE , and depth set according to recurse: if recurse is TRUE, set depth to svn_depth_infinity, if recurse is FALSE, set depth to svn_depth_files. More... | |
svn_error_t * | svn_client_merge_peg (const char *source, const svn_opt_revision_t *revision1, const svn_opt_revision_t *revision2, const svn_opt_revision_t *peg_revision, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_merge_peg2(), but with merge_options set to NULL. More... | |
svn_error_t * | svn_client_suggest_merge_sources (apr_array_header_t **suggestions, const char *path_or_url, const svn_opt_revision_t *peg_revision, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Set suggestions to an ordered array of const char * potential merge sources (expressed as full repository URLs) for path_or_url at peg_revision. More... | |
svn_error_t * | svn_client_mergeinfo_get_merged (apr_hash_t **mergeinfo, const char *path_or_url, const svn_opt_revision_t *peg_revision, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Get the mergeinfo for a single target node (ignoring any subtrees). More... | |
svn_error_t * | svn_client_mergeinfo_log2 (svn_boolean_t finding_merged, const char *target_path_or_url, const svn_opt_revision_t *target_peg_revision, const char *source_path_or_url, const svn_opt_revision_t *source_peg_revision, const svn_opt_revision_t *source_start_revision, const svn_opt_revision_t *source_end_revision, svn_log_entry_receiver_t receiver, void *receiver_baton, svn_boolean_t discover_changed_paths, svn_depth_t depth, const apr_array_header_t *revprops, svn_client_ctx_t *ctx, apr_pool_t *scratch_pool) |
Describe the revisions that either have or have not been merged from one source branch (or subtree) into another. More... | |
svn_error_t * | svn_client_mergeinfo_log (svn_boolean_t finding_merged, const char *target_path_or_url, const svn_opt_revision_t *target_peg_revision, const char *source_path_or_url, const svn_opt_revision_t *source_peg_revision, svn_log_entry_receiver_t receiver, void *receiver_baton, svn_boolean_t discover_changed_paths, svn_depth_t depth, const apr_array_header_t *revprops, svn_client_ctx_t *ctx, apr_pool_t *scratch_pool) |
Similar to svn_client_mergeinfo_log2(), but with source_start_revision and source_end_revision always of kind svn_opt_revision_unspecified ;. More... | |
svn_error_t * | svn_client_mergeinfo_log_merged (const char *path_or_url, const svn_opt_revision_t *peg_revision, const char *merge_source_path_or_url, const svn_opt_revision_t *src_peg_revision, svn_log_entry_receiver_t receiver, void *receiver_baton, svn_boolean_t discover_changed_paths, const apr_array_header_t *revprops, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_mergeinfo_log(), but finds only merged revisions and always operates at depth svn_depth_empty. More... | |
svn_error_t * | svn_client_mergeinfo_log_eligible (const char *path_or_url, const svn_opt_revision_t *peg_revision, const char *merge_source_path_or_url, const svn_opt_revision_t *src_peg_revision, svn_log_entry_receiver_t receiver, void *receiver_baton, svn_boolean_t discover_changed_paths, const apr_array_header_t *revprops, svn_client_ctx_t *ctx, apr_pool_t *pool) |
Similar to svn_client_mergeinfo_log(), but finds only eligible revisions and always operates at depth svn_depth_empty. More... | |
svn_error_t* svn_client_get_merging_summary | ( | svn_boolean_t * | needs_reintegration, |
const char ** | yca_url, | ||
svn_revnum_t * | yca_rev, | ||
const char ** | base_url, | ||
svn_revnum_t * | base_rev, | ||
const char ** | right_url, | ||
svn_revnum_t * | right_rev, | ||
const char ** | target_url, | ||
svn_revnum_t * | target_rev, | ||
const char ** | repos_root_url, | ||
const char * | source_path_or_url, | ||
const svn_opt_revision_t * | source_revision, | ||
const char * | target_path_or_url, | ||
const svn_opt_revision_t * | target_revision, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | result_pool, | ||
apr_pool_t * | scratch_pool | ||
) |
Get information about the state of merging between two branches.
The source is specified by source_path_or_url at source_revision. The target is specified by target_path_or_url at target_revision, which refers to either a WC or a repository location.
Set *needs_reintegration to true if an automatic merge from source to target would be a reintegration merge: that is, if the last automatic merge was in the opposite direction; or to false otherwise.
Set *yca_url, *yca_rev, *base_url, *base_rev, *right_url, *right_rev, *target_url, *target_rev to the repository locations of, respectively: the youngest common ancestor of the branches, the base chosen for 3-way merge, the right-hand side of the source diff, and the target.
Set repos_root_url to the URL of the repository root. This is a common prefix of all four URL outputs.
Allocate the results in result_pool. Any of the output pointers may be NULL if not wanted.
svn_error_t* svn_client_merge | ( | const char * | source1, |
const svn_opt_revision_t * | revision1, | ||
const char * | source2, | ||
const svn_opt_revision_t * | revision2, | ||
const char * | target_wcpath, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | dry_run, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge2(), but with merge_options set to NULL.
svn_error_t* svn_client_merge2 | ( | const char * | source1, |
const svn_opt_revision_t * | revision1, | ||
const char * | source2, | ||
const svn_opt_revision_t * | revision2, | ||
const char * | target_wcpath, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | dry_run, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge3(), but with record_only set to FALSE
, and depth set according to recurse: if recurse is TRUE, set depth to svn_depth_infinity, if recurse is FALSE, set depth to svn_depth_files.
svn_error_t* svn_client_merge3 | ( | const char * | source1, |
const svn_opt_revision_t * | revision1, | ||
const char * | source2, | ||
const svn_opt_revision_t * | revision2, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge4(), but with allow_mixed_rev set to TRUE
.
The force parameter maps to the force_delete
parameter of svn_client_merge4().
svn_error_t* svn_client_merge4 | ( | const char * | source1, |
const svn_opt_revision_t * | revision1, | ||
const char * | source2, | ||
const svn_opt_revision_t * | revision2, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force_delete, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
svn_boolean_t | allow_mixed_rev, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge5(), but the single ignore_ancestry parameter maps to both ignore_mergeinfo
and diff_ignore_ancestry
.
svn_error_t* svn_client_merge5 | ( | const char * | source1, |
const svn_opt_revision_t * | revision1, | ||
const char * | source2, | ||
const svn_opt_revision_t * | revision2, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_mergeinfo, | ||
svn_boolean_t | diff_ignore_ancestry, | ||
svn_boolean_t | force_delete, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
svn_boolean_t | allow_mixed_rev, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Merge changes from source1/revision1 to source2/revision2 into the working-copy path target_wcpath.
source1 and source2 are either URLs that refer to entries in the repository, or paths to entries in the working copy.
By "merging", we mean: apply file differences using svn_wc_merge(), and schedule additions & deletions when appropriate.
source1 and source2 must both represent the same node kind – that is, if source1 is a directory, source2 must also be, and if source1 is a file, source2 must also be.
If either revision1 or revision2 has an `unspecified' or unrecognized `kind', return SVN_ERR_CLIENT_BAD_REVISION.
If depth is svn_depth_infinity, merge fully recursively. Else if svn_depth_immediates, merge changes at most to files that are immediate children of target_wcpath and to directory properties of target_wcpath and its immediate subdirectory children. Else if svn_depth_files, merge at most to immediate file children of target_wcpath and to target_wcpath itself. Else if svn_depth_empty, apply changes only to target_wcpath (i.e., directory property changes only)
If depth is svn_depth_unknown, use the depth of target_wcpath.
If ignore_mergeinfo is true, disable merge tracking, by treating the two sources as unrelated even if they actually have a common ancestor.
If diff_ignore_ancestry is true, diff unrelated nodes as if related: that is, diff the 'left' and 'right' versions of a node as if they were related (if they are the same kind) even if they are not related. Otherwise, diff unrelated items as a deletion of one thing and the addition of another.
If force_delete is false and the merge involves deleting a file whose content differs from the source-left version, or a locally modified directory, or an unversioned item, then the operation will fail. If force_delete is true then all such items will be deleted.
merge_options (an array of const char *
), if non-NULL, is used to pass additional command line arguments to the merge processes (internal or external).
If ctx->notify_func2 is non-NULL, then call ctx->notify_func2 with ctx->notify_baton2 once for each merged target, passing the target's local path.
If record_only is TRUE, the merge is performed, but is limited only to mergeinfo property changes on existing paths in target_wcpath.
If dry_run is TRUE, the merge is carried out, and full notification feedback is provided, but the working copy is not modified.
If allow_mixed_rev is FALSE
, and merge_target is a mixed-revision working copy, raise SVN_ERR_CLIENT_MERGE_UPDATE_REQUIRED
. Because users rarely intend to merge into mixed-revision working copies, it is recommended to set this parameter to FALSE by default unless the user has explicitly requested a merge into a mixed-revision working copy.
The authentication baton cached in ctx is used to communicate with the repository.
svn_error_t* svn_client_merge_peg | ( | const char * | source, |
const svn_opt_revision_t * | revision1, | ||
const svn_opt_revision_t * | revision2, | ||
const svn_opt_revision_t * | peg_revision, | ||
const char * | target_wcpath, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | dry_run, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge_peg2(), but with merge_options set to NULL.
svn_error_t* svn_client_merge_peg2 | ( | const char * | source, |
const svn_opt_revision_t * | revision1, | ||
const svn_opt_revision_t * | revision2, | ||
const svn_opt_revision_t * | peg_revision, | ||
const char * | target_wcpath, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | dry_run, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge_peg3(), but with record_only set to FALSE
, and depth set according to recurse: if recurse is TRUE, set depth to svn_depth_infinity, if recurse is FALSE, set depth to svn_depth_files.
svn_error_t* svn_client_merge_peg3 | ( | const char * | source, |
const apr_array_header_t * | ranges_to_merge, | ||
const svn_opt_revision_t * | peg_revision, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge_peg4(), but with allow_mixed_rev set to TRUE
.
The force parameter maps to the force_delete
parameter of svn_client_merge_peg4().
svn_error_t* svn_client_merge_peg4 | ( | const char * | source_path_or_url, |
const apr_array_header_t * | ranges_to_merge, | ||
const svn_opt_revision_t * | source_peg_revision, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | force_delete, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
svn_boolean_t | allow_mixed_rev, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_merge_peg5(), but automatic merge is not available (ranges_to_merge must not be NULL), and the single ignore_ancestry parameter maps to both ignore_mergeinfo
and diff_ignore_ancestry
.
svn_error_t* svn_client_merge_peg5 | ( | const char * | source_path_or_url, |
const apr_array_header_t * | ranges_to_merge, | ||
const svn_opt_revision_t * | source_peg_revision, | ||
const char * | target_wcpath, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_mergeinfo, | ||
svn_boolean_t | diff_ignore_ancestry, | ||
svn_boolean_t | force_delete, | ||
svn_boolean_t | record_only, | ||
svn_boolean_t | dry_run, | ||
svn_boolean_t | allow_mixed_rev, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Merge changes from the source branch identified by source_path_or_url in peg revision source_peg_revision, into the target branch working copy at target_wcpath.
If ranges_to_merge is NULL then perform an automatic merge of all the eligible changes up to source_peg_revision. If the merge required is a reintegrate merge, then return an error if the WC has mixed revisions, local modifications and/or switched subtrees; if the merge is determined to be of the non-reintegrate kind, then return an error if allow_mixed_rev is false and the WC contains mixed revisions.
If ranges_to_merge is not NULL then merge the changes specified by the revision ranges in ranges_to_merge, or, when honouring mergeinfo, only the eligible parts of those revision ranges. ranges_to_merge is an array of svn_opt_revision_range_t *
ranges. These ranges may describe additive and/or subtractive merge ranges, they may overlap fully or partially, and/or they may partially or fully negate each other. This rangelist is not required to be sorted. If any revision in the list of provided ranges has an `unspecified' or unrecognized `kind', return SVN_ERR_CLIENT_BAD_REVISION.
If ranges_to_merge is an empty array, then do nothing.
All other options are handled identically to svn_client_merge5().
svn_error_t* svn_client_merge_reintegrate | ( | const char * | source_path_or_url, |
const svn_opt_revision_t * | source_peg_revision, | ||
const char * | target_wcpath, | ||
svn_boolean_t | dry_run, | ||
const apr_array_header_t * | merge_options, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Perform a reintegration merge of source_path_or_url at source_peg_revision into target_wcpath.
target_wcpath must be a single-revision, svn_depth_infinity, pristine, unswitched working copy – in other words, it must reflect a single revision tree, the "target". The mergeinfo on source_path_or_url must reflect that all of the target has been merged into it. Then this behaves like a merge with svn_client_merge5() from the target's URL to the source.
All other options are handled identically to svn_client_merge5(). The depth of the merge is always svn_depth_infinity.
svn_error_t* svn_client_mergeinfo_get_merged | ( | apr_hash_t ** | mergeinfo, |
const char * | path_or_url, | ||
const svn_opt_revision_t * | peg_revision, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Get the mergeinfo for a single target node (ignoring any subtrees).
Set *mergeinfo to a hash mapping const char *
merge source URLs to svn_rangelist_t *
rangelists describing the ranges which have been merged into path_or_url as of peg_revision, per path_or_url's explicit mergeinfo or inherited mergeinfo if no explicit mergeinfo if found. If no explicit or inherited mergeinfo is found, then set *mergeinfo to NULL.
Use pool for all necessary allocations.
If the server doesn't support retrieval of mergeinfo (which will never happen for file:// URLs), return an SVN_ERR_UNSUPPORTED_FEATURE error.
svn_error_t* svn_client_mergeinfo_log | ( | svn_boolean_t | finding_merged, |
const char * | target_path_or_url, | ||
const svn_opt_revision_t * | target_peg_revision, | ||
const char * | source_path_or_url, | ||
const svn_opt_revision_t * | source_peg_revision, | ||
svn_log_entry_receiver_t | receiver, | ||
void * | receiver_baton, | ||
svn_boolean_t | discover_changed_paths, | ||
svn_depth_t | depth, | ||
const apr_array_header_t * | revprops, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | scratch_pool | ||
) |
Similar to svn_client_mergeinfo_log2(), but with source_start_revision and source_end_revision always of kind svn_opt_revision_unspecified
;.
svn_error_t* svn_client_mergeinfo_log2 | ( | svn_boolean_t | finding_merged, |
const char * | target_path_or_url, | ||
const svn_opt_revision_t * | target_peg_revision, | ||
const char * | source_path_or_url, | ||
const svn_opt_revision_t * | source_peg_revision, | ||
const svn_opt_revision_t * | source_start_revision, | ||
const svn_opt_revision_t * | source_end_revision, | ||
svn_log_entry_receiver_t | receiver, | ||
void * | receiver_baton, | ||
svn_boolean_t | discover_changed_paths, | ||
svn_depth_t | depth, | ||
const apr_array_header_t * | revprops, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | scratch_pool | ||
) |
Describe the revisions that either have or have not been merged from one source branch (or subtree) into another.
If finding_merged is TRUE, then drive log entry callbacks receiver / receiver_baton with the revisions merged from source_path_or_url (as of source_peg_revision) into target_path_or_url (as of target_peg_revision). If finding_merged is FALSE then find the revisions eligible for merging.
If both source_start_revision and source_end_revision are unspecified (that is, of kind svn_opt_revision_unspecified
), receiver will be called the requested revisions from 0 to source_peg_revision and in that order (that is, oldest to youngest). Otherwise, both source_start_revision and source_end_revision must be specified, which has two effects:
If depth is svn_depth_empty consider only the explicit or inherited mergeinfo on target_path_or_url when calculating merged revisions from source_path_or_url. If depth is svn_depth_infinity then also consider the explicit subtree mergeinfo under target_path_or_url. If a depth other than svn_depth_empty or svn_depth_infinity is requested then return a SVN_ERR_UNSUPPORTED_FEATURE error.
In addition to the behavior of discover_changed_paths described in svn_client_log5(), if set to TRUE it enables detection of sub-tree merges that are complete but can't be detected as complete without access to the changed paths. Sub-tree merges detected as complete will be included if finding_merged is TRUE or filtered if finding_merged is FALSE.
revprops is the same as for svn_client_log5(). Use scratch_pool for all temporary allocations.
ctx is a context used for authentication.
If the server doesn't support retrieval of mergeinfo, return an SVN_ERR_UNSUPPORTED_FEATURE error.
svn_error_t* svn_client_mergeinfo_log_eligible | ( | const char * | path_or_url, |
const svn_opt_revision_t * | peg_revision, | ||
const char * | merge_source_path_or_url, | ||
const svn_opt_revision_t * | src_peg_revision, | ||
svn_log_entry_receiver_t | receiver, | ||
void * | receiver_baton, | ||
svn_boolean_t | discover_changed_paths, | ||
const apr_array_header_t * | revprops, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_mergeinfo_log(), but finds only eligible revisions and always operates at depth svn_depth_empty.
svn_error_t* svn_client_mergeinfo_log_merged | ( | const char * | path_or_url, |
const svn_opt_revision_t * | peg_revision, | ||
const char * | merge_source_path_or_url, | ||
const svn_opt_revision_t * | src_peg_revision, | ||
svn_log_entry_receiver_t | receiver, | ||
void * | receiver_baton, | ||
svn_boolean_t | discover_changed_paths, | ||
const apr_array_header_t * | revprops, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_client_mergeinfo_log(), but finds only merged revisions and always operates at depth svn_depth_empty.
svn_error_t* svn_client_suggest_merge_sources | ( | apr_array_header_t ** | suggestions, |
const char * | path_or_url, | ||
const svn_opt_revision_t * | peg_revision, | ||
svn_client_ctx_t * | ctx, | ||
apr_pool_t * | pool | ||
) |
Set suggestions to an ordered array of const
char * potential merge sources (expressed as full repository URLs) for path_or_url at peg_revision.
path_or_url is a working copy path or repository URL. ctx is a context used for authentication in the repository case. Use pool for all allocations.