Client blame functionality
Client supporting subsystem

Client blame. More...

## Typedefs

typedef svn_error_t *(* | svn_client_blame_receiver4_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, svn_revnum_t merged_revision, apr_hash_t *merged_rev_props, const char *merged_path, const svn_string_t *line, svn_boolean_t local_change, apr_pool_t *pool)
| Callback type used by svn_client_blame6() to notify the caller that line line_no of the blamed file was last changed in revision which has the revision properties rev_props, and that the contents were line. More...
typedef svn_error_t *(* | svn_client_blame_receiver3_t) (void *baton, svn_revnum_t start_revnum, svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, svn_revnum_t merged_revision, apr_hash_t *merged_rev_props, const char *merged_path, const char *line, svn_boolean_t local_change, apr_pool_t *pool)
| Similar to svn_client_blame_receiver4_t, but with the line parameter as a (const char*) instead of an svn_string_t, and the parameters start_revnum and end_revnum contain the start and end revision number of the entire blame operation, as resolved from the repository inside svn_client_blame6(). More...
typedef svn_error_t *(* | svn_client_blame_receiver2_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, svn_revnum_t merged_revision, const char *merged_author, const char *merged_date, const char *merged_path, const char *line, apr_pool_t *pool)
| Similar to svn_client_blame_receiver3_t, but with separate author and date revision properties instead of all revision properties, and without information about local changes. More...
typedef svn_error_t *(* | svn_client_blame_receiver_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, const char *line, apr_pool_t *pool)
| Similar to svn_client_blame_receiver2_t, but without merged_revision, merged_author, merged_date, or merged_path members. More...

## Detailed Description

Client blame.

## Typedef Documentation

## svn_client_blame_receiver2_t

typedef svn_error_t*(* svn_client_blame_receiver2_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, svn_revnum_t merged_revision, const char *merged_author, const char *merged_date, const char *merged_path, const char *line, apr_pool_t *pool)

Similar to svn_client_blame_receiver3_t, but with separate author and date revision properties instead of all revision properties, and without information about local changes.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

Since
  New in 1.5.

Definition at line 824 of file svn_client.h.

## svn_client_blame_receiver3_t

typedef svn_error_t*(* svn_client_blame_receiver3_t) (void *baton, svn_revnum_t start_revnum, svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, svn_revnum_t merged_revision, apr_hash_t *merged_rev_props, const char *merged_path, const char *line, svn_boolean_t local_change, apr_pool_t *pool)

Similar to svn_client_blame_receiver4_t, but with the line parameter as a (const char*) instead of an svn_string_t, and the parameters start_revnum and end_revnum contain the start and end revision number of the entire blame operation, as resolved from the repository inside svn_client_blame6().

Deprecated:
  Provided for backward compatibility with the 1.11 API. To replace start_revnum and end_revnum, see the corresponding output parameters in svn_client_blame6().

Since
  New in 1.7.

Definition at line 801 of file svn_client.h.

## svn_client_blame_receiver4_t

typedef svn_error_t*(* svn_client_blame_receiver4_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, svn_revnum_t merged_revision, apr_hash_t *merged_rev_props, const char *merged_path, const svn_string_t *line, svn_boolean_t local_change, apr_pool_t *pool)

Callback type used by svn_client_blame6() to notify the caller that line line_no of the blamed file was last changed in revision which has the revision properties rev_props, and that the contents were line.

If svn_client_blame5() was called with include_merged_revisions set to TRUE, merged_revision, merged_rev_props and merged_path will be set, otherwise they will be NULL. merged_path will be set to the absolute repository path.

All allocations should be performed in pool.

Note
  If there is no blame information for this line, revision will be invalid and rev_props will be NULL. In this case local_change will be true if the reason there is no blame information is that the line was modified locally. In all other cases local_change will be false.

Character Encoding and Line Splitting:

It is up to the client to determine the character encoding. The line content is delivered without any encoding conversion. The line splitting is designed to work with ASCII-compatible encodings including UTF-8. Any of the byte sequences LF ("\n"), CR ("\n"), CR LF ("\r\n") ends a line and is not included in line. The line content can include all other byte values including zero (ASCII NUL).

Note
  That is how line splitting is done on the final file content, from which this callback is driven. It is not entirely clear whether the line splitting used to calculate diffs between each revision and assign a revision number to each line is exactly compatible with this in all cases.

Blaming files that have `svn:mime-type` set to something other than `text/...` requires the ignore_mime_type flag to be set to true when calling the svn_client_blame6 function.

Since
  New in 1.12.

Definition at line 776 of file svn_client.h.

## svn_client_blame_receiver_t

typedef svn_error_t*(* svn_client_blame_receiver_t) (void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, const char *line, apr_pool_t *pool)

Similar to svn_client_blame_receiver2_t, but without merged_revision, merged_author, merged_date, or merged_path members.

Note
  New in 1.4 is that the line is defined to contain only the line content (and no [partial] EOLs; which was undefined in older versions). Using this callback with svn_client_blame() or svn_client_blame2() will still give you the old behaviour.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

Definition at line 848 of file svn_client.h.