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 )