Subversion 1.6.16
Functions

Merge changes between branches.

Client working copy management

Functions

svn_error_tsvn_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)
 Merge changes from source1/revision1 to source2/revision2 into the working-copy path target_wcpath.
svn_error_tsvn_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_tsvn_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_tsvn_client_merge_reintegrate (const char *source, const svn_opt_revision_t *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 at peg_revision into target_wcpath.
svn_error_tsvn_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)
 Merge the changes between the filesystem object source in peg revision peg_revision, as it changed between the ranges described in ranges_to_merge.
svn_error_tsvn_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_tsvn_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_tsvn_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.
svn_error_tsvn_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)
 Set *mergeinfo to a hash mapping const char * merge source URLs to apr_array_header_t * rangelists (arrays of svn_merge_range_t * ranges) describing the ranges which have been merged into path_or_url as of peg_revision, or NULL if there is no mergeinfo.
svn_error_tsvn_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)
 Drive log entry callbacks receiver / receiver_baton with the revisions merged from merge_source_path_or_url (as of src_peg_revision) into path_or_url (as of peg_revision).
svn_error_tsvn_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)
 Drive log entry callbacks receiver / receiver_baton with the revisions eligible for merge from merge_source_path_or_url (as of src_peg_revision) into path_or_url (as of peg_revision).

Function Documentation

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.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
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.

Deprecated:
Provided for backward compatibility with the 1.4 API.
Since:
New in 1.4.
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 
)

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.

Use ignore_ancestry to control whether or not items being diffed will be checked for relatedness first. Unrelated items are typically transmitted to the editor as a deletion of one thing and the addition of another, but if this flag is TRUE, unrelated items will be diffed as if they were related.

If force 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 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).

See also:
svn_diff_file_options_parse().

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 isn't actually performed, but the mergeinfo for the revisions which would've been merged is recorded in the working copy (and must be subsequently committed back to the repository).

If dry_run is TRUE, the merge is carried out, and full notification feedback is provided, but the working copy is not modified.

The authentication baton cached in ctx is used to communicate with the repository.

Since:
New in 1.5.
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.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
Since:
New in 1.1.
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.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
Since:
New in 1.4.
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 
)

Merge the changes between the filesystem object source in peg revision peg_revision, as it changed between the ranges described in ranges_to_merge.

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.

All other options are handled identically to svn_client_merge3().

Since:
New in 1.5.
svn_error_t* svn_client_merge_reintegrate ( const char *  source,
const svn_opt_revision_t 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 at 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 must reflect that all of the target has been merged into it. Then this behaves like a merge with svn_client_merge3() from the target's URL to the source.

All other options are handled identically to svn_client_merge3(). The depth of the merge is always svn_depth_infinity.

Since:
New in 1.5.
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 
)

Set *mergeinfo to a hash mapping const char * merge source URLs to apr_array_header_t * rangelists (arrays of svn_merge_range_t * ranges) describing the ranges which have been merged into path_or_url as of peg_revision, or NULL if there is no mergeinfo.

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.

Note:
Unlike most APIs which deal with mergeinfo, this one returns data where the keys of the hash are absolute repository URLs rather than repository filesystem paths.
Since:
New in 1.5.
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 
)

Drive log entry callbacks receiver / receiver_baton with the revisions eligible for merge from merge_source_path_or_url (as of src_peg_revision) into path_or_url (as of peg_revision).

ctx is a context used for authentication.

discover_changed_paths and revprops are the same as for svn_client_log4(). Use pool for all necessary allocations.

If the server doesn't support retrieval of mergeinfo, return an SVN_ERR_UNSUPPORTED_FEATURE error.

Since:
New in 1.5.
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 
)

Drive log entry callbacks receiver / receiver_baton with the revisions merged from merge_source_path_or_url (as of src_peg_revision) into path_or_url (as of peg_revision).

ctx is a context used for authentication.

discover_changed_paths and revprops are the same as for svn_client_log4(). Use pool for all necessary allocations.

If the server doesn't support retrieval of mergeinfo, return an SVN_ERR_UNSUPPORTED_FEATURE error.

Since:
New in 1.5.
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.

Since:
New in 1.5.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines