Bruce DeVisser <bmdmail@sympatico.ca>


Review
r858561, r857577

r857577 | lundblad | 2005-11-23 23:32:17 +0000 (Wed, 23 Nov 2005)

* www/hacking.html (tarball-signing): New section to document how the release
  signing works.

Review by: steveking <steveking@gmx.ch>
           mbk
           malcolm
           danderson
           kfogel
           maxb
           Bruce DeVisser <bmdmail@sympatico.ca>


r858561 | lundblad | 2006-02-16 22:23:05 +0000 (Thu, 16 Feb 2006)

Fix issue #2121: add options to ignore whitespace (all whitespace and
changes in sequences of whitespace) and to ignore EOL style to our
internal diff library.  Use this functionality in the client diff
functions.

This commit also supports ignoring whitespace and EOL style for the diff3
and diff4 implementations, which is not used yet.  Coming commits will
use this new stuff in blame and merge as well.  I will also add tests for
this new functionality after refactoring the C diff tests somewhat.

Review by: julianfoad
           rooneg
           Bruce DeVisser <bmdmail@sympatico.ca>


* subversion/include/svn_diff.h
  (svn_diff_file_ignore_space_t): New enum.
  (svn_diff_file_options_t): New struct.
  (svn_diff_file_options_create, svn_diff_file_options_parse): New functions.
  (svn_diff_file_diff_2, svn_diff_file_diff3_2, svn_diff_file_diff4_2): New
  version of the corresponding existing function, with an options argument.
  (svn_diff_file_diff, svn_diff_file_diff3, svn_diff_file_diff4): Deprecate.

* subversion/include/svn_error_codes.h
  (SVN_ERR_DIFF_CATEGORY_START): New error category.
  (SVN_ERR_DIFF_DATASOURCE_MODIFIED): New error code.

* subversion/libsvn_diff/diff_file.c
  (svn_diff__file_token_t): Add raw_length field.  Add docstrings.
  (normalize_state_t): New enum.
  (svn_diff__file_baton_t): Add options and normalize_state fields.
  Add some docstrings.
  (normalize): New function.
  (svn_diff__file_datasource_get_next_token): Normalize the read token.
  Initialize raw_length of the token.
  (svn_diff__file_token_compare): Normalize chunks when read from disk.
  (SVN_DIFF__OPT_IGNORE_EOL_STYLE): New macro.
  (diff_options): New array of options.
  (svn_diff_file_options_create, svn_diff_file_options_parse): New functions.
  (svn_diff_file_diff_2, svn_diff_file_diff3_2, svn_diff_file_diff4_2): New
  versions of the old APIs.  Take care of the options.
  (svn_diff_file_diff, svn_diff_file_diff3, svn_diff_file_diff4): Wrap the
  new functions.
  (svn_diff3__file_output_common): Output lines from the modified file instead
  of the original.

* subversion/libsvn_client/diff.c
  (diff_content_changed): Use the new APIs to support the new options.