Generate differences between paths.
Client working copy management

## Functions

svn_error_t *

svn_client_diff7 (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, svn_boolean_t pretty_print_mergeinfo, 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)

| Produce diff output which describes the delta between path_or_url1/revision1 and path_or_url2/revision2. More...

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)

| Similar to svn_client_diff7(), but with pretty_print_mergeinfo always passed as `TRUE`. More...

svn_error_t *

svn_client_diff5 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, 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_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t use_git_diff_format, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff6(), but with outfile and errfile, instead of outstream and errstream, and with no_diff_added, ignore_properties, and properties_only always passed as `FALSE` (which means that additions and property changes are always transmitted). More...

svn_error_t *

svn_client_diff4 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, 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_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff5(), but with show_copies_as_adds set to `FALSE` and use_git_diff_format set to `FALSE`. More...

svn_error_t *

svn_client_diff3 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff4(), but with changelists passed as `NULL`, 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_empty. More...
svn_error_t * | svn_client_diff2 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_diff3(), but with header_encoding set to `APR_LOCALE_CHARSET`. More...
svn_error_t * | svn_client_diff (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_diff2(), but with ignore_content_type always set to FALSE. More...

svn_error_t *

svn_client_diff_peg7 (const apr_array_header_t *diff_options, const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, 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, svn_boolean_t pretty_print_mergeinfo, 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)

| Produce diff output which describes the delta between the filesystem object path_or_url in peg revision peg_revision, as it changed between start_revision and end_revision. More...

svn_error_t *

svn_client_diff_peg6 (const apr_array_header_t *diff_options, const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, 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)

| Similar to svn_client_diff_peg7(), but with pretty_print_mergeinfo always passed as `TRUE`. More...

svn_error_t *

svn_client_diff_peg5 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, const char *relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t use_git_diff_format, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff6_peg6(), but with outfile and errfile, instead of outstream and errstream, and with no_diff_added, ignore_properties, and properties_only always passed as `FALSE` (which means that additions and property changes are always transmitted). More...

svn_error_t *

svn_client_diff_peg4 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, const char *relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff_peg5(), but with show_copies_as_adds set to `FALSE` and use_git_diff_format set to `FALSE`. More...

svn_error_t *

svn_client_diff_peg3 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff_peg4(), but with changelists passed as `NULL`, 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_diff_peg2 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)

| Similar to svn_client_diff_peg3(), but with header_encoding set to `APR_LOCALE_CHARSET`. More...
svn_error_t * | svn_client_diff_peg (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_diff_peg2(), but with ignore_content_type always set to FALSE. More...
svn_error_t * | svn_client_diff_summarize2 (const char *path_or_url1, const svn_opt_revision_t *revision1, const char *path_or_url2, const svn_opt_revision_t *revision2, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Produce a diff summary which lists the changed items between path_or_url1/revision1 and path_or_url2/revision2 without creating text deltas. More...
svn_error_t * | svn_client_diff_summarize (const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_diff_summarize2(), but with changelists passed as `NULL`, 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_diff_summarize_peg2 (const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Produce a diff summary which lists the changed items between the filesystem object path_or_url in peg revision peg_revision, as it changed between start_revision and end_revision. More...
svn_error_t * | svn_client_diff_summarize_peg (const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_diff_summarize_peg2(), but with changelists passed as `NULL`, 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...

## Detailed Description

## Function Documentation

## svn_client_diff()

svn_error_t* svn_client_diff | ( | const apr_array_header_t * | diff_options,
|  | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | const svn_opt_revision_t * | revision2,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff2(), but with ignore_content_type always set to FALSE.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

## svn_client_diff2()

svn_error_t* svn_client_diff2 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | const svn_opt_revision_t * | revision2,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff3(), but with header_encoding set to `APR_LOCALE_CHARSET`.

Deprecated:
  Provided for backward compatibility with the 1.2 API.

Since
  New in 1.2.

## svn_client_diff3()

svn_error_t* svn_client_diff3 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | const svn_opt_revision_t * | revision2,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff4(), but with changelists passed as `NULL`, 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_empty.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

Since
  New in 1.3.

## svn_client_diff4()

svn_error_t* svn_client_diff4 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | 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_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff5(), but with show_copies_as_adds set to `FALSE` and use_git_diff_format set to `FALSE`.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

Since
  New in 1.5.

## svn_client_diff5()

svn_error_t* svn_client_diff5 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | 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_deleted,
|  | svn_boolean_t | show_copies_as_adds,
|  | svn_boolean_t | ignore_content_type,
|  | svn_boolean_t | use_git_diff_format,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff6(), but with outfile and errfile, instead of outstream and errstream, and with no_diff_added, ignore_properties, and properties_only always passed as `FALSE` (which means that additions and property changes are always transmitted).

Deprecated:
  Provided for backward compatibility with the 1.7 API.

Since
  New in 1.7.

## svn_client_diff6()

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
| ) |  |

Similar to svn_client_diff7(), but with pretty_print_mergeinfo always passed as `TRUE`.

Deprecated:
  Provided for backward compatibility with the 1.10 API.

Since
  New in 1.8.

## svn_client_diff7()

svn_error_t* svn_client_diff7 | ( | 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,
|  | svn_boolean_t | pretty_print_mergeinfo,
|  | 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
| ) |  |

Produce diff output which describes the delta between path_or_url1/revision1 and path_or_url2/revision2.

Print the output of the diff to outstream, and any errors to errstream. path_or_url1 and path_or_url2 can be either working-copy paths or URLs.

If relative_to_dir is not `NULL`, the original path and modified path will have the relative_to_dir stripped from the front of the respective paths. If relative_to_dir is `NULL`, paths will not be modified. If relative_to_dir is not `NULL` but relative_to_dir is not a parent path of the target, an error is returned. Finally, if relative_to_dir is a URL, an error will be returned.

If either revision1 or revision2 has an ‘unspecified’ or unrecognized ‘kind’, return SVN_ERR_CLIENT_BAD_REVISION.

path_or_url1 and path_or_url2 must both represent the same node kind – that is, if path_or_url1 is a directory, path_or_url2 must also be, and if path_or_url1 is a file, path_or_url2 must also be.

If 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 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 no_diff_added is TRUE, then no diff output will be generated on added files.

If no_diff_deleted is TRUE, then no diff output will be generated on deleted files.

If 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 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 ignore_properties is TRUE, do not show property differences. If properties_only is TRUE, show only property changes. The above two options are mutually exclusive. It is an error to set both to TRUE.

If pretty_print_mergeinfo is true, then describe 'svn:mergeinfo' property changes in a human-readable form that says what changes were merged or reverse merged; otherwise (or if the mergeinfo property values don't parse correctly) display them just like any other property.

Generated headers are encoded using header_encoding.

If either side has an svn:mime-type property that indicates 'binary' content, then if ignore_content_type is set, attempt to produce the diff in the usual way, otherwise produce a 'GIT binary diff' in git mode or print a warning message in non-git mode.

diff_options (an array of `const char *`) is used to pass additional command line options to the diff processes invoked to compare files. diff_options is allowed to be `NULL`, in which case a value for this option might still be obtained from the Subversion configuration file via client context ctx.

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

changelists is an array of `const char *` 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 changelists is empty (or altogether `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.
  header_encoding doesn't affect headers generated by external diff programs.
  relative_to_dir doesn't affect the path index generated by external diff programs.

Since
  New in 1.11.

## svn_client_diff_peg()

svn_error_t* svn_client_diff_peg | ( | const apr_array_header_t * | diff_options,
|  | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_peg2(), but with ignore_content_type always set to FALSE.

Since
  New in 1.1.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

## svn_client_diff_peg2()

svn_error_t* svn_client_diff_peg2 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_peg3(), but with header_encoding set to `APR_LOCALE_CHARSET`.

Deprecated:
  Provided for backward compatibility with the 1.2 API.

Since
  New in 1.2.

## svn_client_diff_peg3()

svn_error_t* svn_client_diff_peg3 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_peg4(), but with changelists passed as `NULL`, 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.3.

## svn_client_diff_peg4()

svn_error_t* svn_client_diff_peg4 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | const char * | relative_to_dir,
|  | svn_depth_t | depth,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | ignore_content_type,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_peg5(), but with show_copies_as_adds set to `FALSE` and use_git_diff_format set to `FALSE`.

Since
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

## svn_client_diff_peg5()

svn_error_t* svn_client_diff_peg5 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | const char * | relative_to_dir,
|  | svn_depth_t | depth,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_boolean_t | no_diff_deleted,
|  | svn_boolean_t | show_copies_as_adds,
|  | svn_boolean_t | ignore_content_type,
|  | svn_boolean_t | use_git_diff_format,
|  | const char * | header_encoding,
|  | apr_file_t * | outfile,
|  | apr_file_t * | errfile,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff6_peg6(), but with outfile and errfile, instead of outstream and errstream, and with no_diff_added, ignore_properties, and properties_only always passed as `FALSE` (which means that additions and property changes are always transmitted).

Deprecated:
  Provided for backward compatibility with the 1.7 API.

Since
  New in 1.7.

## svn_client_diff_peg6()

svn_error_t* svn_client_diff_peg6 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path_or_url,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | 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
| ) |  |

Similar to svn_client_diff_peg7(), but with pretty_print_mergeinfo always passed as `TRUE`.

Deprecated:
  Provided for backward compatibility with the 1.7 API.

Since
  New in 1.7.

## svn_client_diff_peg7()

svn_error_t* svn_client_diff_peg7 | ( | const apr_array_header_t * | diff_options,
|  | const char * | path_or_url,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | 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,
|  | svn_boolean_t | pretty_print_mergeinfo,
|  | 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
| ) |  |

Produce diff output which describes the delta between the filesystem object path_or_url in peg revision peg_revision, as it changed between start_revision and end_revision.

path_or_url can be either a working-copy path or URL.

If peg_revision is svn_opt_revision_unspecified, behave identically to svn_client_diff7(), using path_or_url for both of that function's path_or_url1 and path_or_url2 arguments.

All other options are handled identically to svn_client_diff7().

Since
  New in 1.8.

## svn_client_diff_summarize()

svn_error_t* svn_client_diff_summarize | ( | const char * | path1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path2,
|  | const svn_opt_revision_t * | revision2,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_client_diff_summarize_func_t | summarize_func,
|  | void * | summarize_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_summarize2(), but with changelists passed as `NULL`, 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_client_diff_summarize2()

svn_error_t* svn_client_diff_summarize2 | ( | const char * | path_or_url1,
|  | const svn_opt_revision_t * | revision1,
|  | const char * | path_or_url2,
|  | const svn_opt_revision_t * | revision2,
|  | svn_depth_t | depth,
|  | svn_boolean_t | ignore_ancestry,
|  | const apr_array_header_t * | changelists,
|  | svn_client_diff_summarize_func_t | summarize_func,
|  | void * | summarize_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Produce a diff summary which lists the changed items between path_or_url1/revision1 and path_or_url2/revision2 without creating text deltas.

path_or_url1 and path_or_url2 can be either working-copy paths or URLs.

The function may report false positives if ignore_ancestry is false, since a file might have been modified between two revisions, but still have the same contents.

Calls summarize_func with summarize_baton for each difference with a svn_client_diff_summarize_t structure describing the difference.

See svn_client_diff7() for a description of the other parameters.

Since
  New in 1.5.

## svn_client_diff_summarize_peg()

svn_error_t* svn_client_diff_summarize_peg | ( | const char * | path,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | ignore_ancestry,
|  | svn_client_diff_summarize_func_t | summarize_func,
|  | void * | summarize_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_client_diff_summarize_peg2(), but with changelists passed as `NULL`, 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_client_diff_summarize_peg2()

svn_error_t* svn_client_diff_summarize_peg2 | ( | const char * | path_or_url,
|  | const svn_opt_revision_t * | peg_revision,
|  | const svn_opt_revision_t * | start_revision,
|  | const svn_opt_revision_t * | end_revision,
|  | svn_depth_t | depth,
|  | svn_boolean_t | ignore_ancestry,
|  | const apr_array_header_t * | changelists,
|  | svn_client_diff_summarize_func_t | summarize_func,
|  | void * | summarize_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool
| ) |  |

Produce a diff summary which lists the changed items between the filesystem object path_or_url in peg revision peg_revision, as it changed between start_revision and end_revision.

path_or_url can be either a working-copy path or URL.

If peg_revision is svn_opt_revision_unspecified, behave identically to svn_client_diff_summarize2(), using path_or_url for both of that function's path_or_url1 and path_or_url2 arguments.

The function may report false positives if ignore_ancestry is false, as described in the documentation for svn_client_diff_summarize2().

Call summarize_func with summarize_baton for each difference with a svn_client_diff_summarize_t structure describing the difference.

See svn_client_diff_peg5() for a description of the other parameters.

Since
  New in 1.5.