Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
/**
* @defgroup Diff Generate differences between paths.
*
* @{
*/
/**
* Produce diff output which describes the delta between
* @a path_or_url1/@a revision1 and @a path_or_url2/@a revision2. Print
* the output of the diff to @a outstream, and any errors to @a
* errstream. @a path_or_url1 and @a path_or_url2 can be either
* working-copy paths or URLs.
*
* If @a relative_to_dir is not @c NULL, the original path and
* modified path will have the @a relative_to_dir stripped from the
* front of the respective paths. If @a relative_to_dir is @c NULL,
* paths will not be modified. If @a relative_to_dir is not
* @c NULL but @a relative_to_dir is not a parent path of the target,
* an error is returned. Finally, if @a relative_to_dir is a URL, an
* error will be returned.
*
* If either @a revision1 or @a revision2 has an `unspecified' or
* unrecognized `kind', return #SVN_ERR_CLIENT_BAD_REVISION.
*
* @a path_or_url1 and @a path_or_url2 must both represent the same node
* kind -- that is, if @a path_or_url1 is a directory, @a path_or_url2
* must also be, and if @a path_or_url1 is a file, @a path_or_url2 must
* also be.
*
* If @a depth is #svn_depth_infinity, diff fully recursively.
* Else if it is #svn_depth_immediates, diff the named paths and
* their file children (if any), and diff properties of
* subdirectories, but do not descend further into the subdirectories.
* Else if #svn_depth_files, behave as if for #svn_depth_immediates
* except don't diff properties of subdirectories. If
* #svn_depth_empty, diff exactly the named paths but nothing
* underneath them.
*
* Use @a 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 @a no_diff_added is TRUE, then no diff output will be generated
* on added files.
*
* If @a no_diff_deleted is TRUE, then no diff output will be
* generated on deleted files.
*
* If @a show_copies_as_adds is TRUE, then copied files will not be diffed
* against their copyfrom source, and will appear in the diff output
* in their entirety, as if they were newly added.
* ### BUGS: For a repos-repos diff, this is ignored. Instead, a file is
* diffed against its copyfrom source iff the file is the diff target
* and not if some parent directory is the diff target. For a repos-WC
* diff, this is ignored if the file is the diff target.
*
* If @a use_git_diff_format is TRUE, then the git's extended diff format
* will be used.
* ### Do we need to say more about the format? A reference perhaps?
*
* If @a ignore_properties is TRUE, do not show property differences.
* If @a properties_only is TRUE, show only property changes.
* The above two options are mutually exclusive. It is an error to set
* both to TRUE.
*
* Generated headers are encoded using @a header_encoding.
*
* Diff output will not be generated for binary files, unless @a
* ignore_content_type is TRUE, in which case diffs will be shown
* regardless of the content types.
*
* @a diff_options (an array of <tt>const char *</tt>) is used to pass
* additional command line options to the diff processes invoked to compare
* files. @a diff_options is allowed to be @c NULL, in which case a value
* for this option might still be obtained from the Subversion configuration
* file via client context @a ctx.
*
* The authentication baton cached in @a ctx is used to communicate with
* the repository.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items whose differences are
* reported; that is, don't generate diffs about any item unless
* it's a member of one of those changelists. If @a changelists is
* empty (or altogether @c NULL), no changelist filtering occurs.
*
* @note Changelist filtering only applies to diffs in which at least
* one side of the diff represents working copy data.
*
* @note @a header_encoding doesn't affect headers generated by external
* diff programs.
*
* @note @a relative_to_dir doesn't affect the path index generated by
* external diff programs.
*
* @since New in 1.8.
*/
svn_error_t *
svn_client_diff6(const apr_array_header_t *diff_options,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const char *path_or_url2,
const svn_opt_revision_t *revision2,
const char *relative_to_dir,
svn_depth_t depth,
svn_boolean_t ignore_ancestry,
svn_boolean_t no_diff_added,
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
const apr_array_header_t *changelists,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
( run in 0.309 second using v1.01-cache-2.11-cpan-483215c6ad5 )