Commit 7e3faf58 by Carlos Martín Nieto

diff: expose the "indent heuristic" in the diff options

We default to off, but we might want to consider changing `GIT_DIFF_NORMAL` to
include it.
parent a8f19f81
...@@ -12,6 +12,10 @@ v0.26 + 1 ...@@ -12,6 +12,10 @@ v0.26 + 1
* We now support conditional includes in configuration files. * We now support conditional includes in configuration files.
* There is a new diff option, `GIT_DIFF_INDENT_HEURISTIC` which activates a
heuristic which takes into account whitespace and indentation in order to
produce better diffs when dealing with ambiguous diff hunks.
### API additions ### API additions
* `git_remote_create_detached()` creates a remote that is not associated * `git_remote_create_detached()` creates a remote that is not associated
......
...@@ -206,6 +206,12 @@ typedef enum { ...@@ -206,6 +206,12 @@ typedef enum {
* can apply given diff information to binary files. * can apply given diff information to binary files.
*/ */
GIT_DIFF_SHOW_BINARY = (1 << 30), GIT_DIFF_SHOW_BINARY = (1 << 30),
/** Use a heuristic that takes indentation and whitespace into account
* which generally can produce better diffs when dealing with ambiguous
* diff hunks.
*/
GIT_DIFF_INDENT_HEURISTIC = (1 << 31),
} git_diff_option_t; } git_diff_option_t;
/** /**
......
...@@ -239,6 +239,8 @@ void git_xdiff_init(git_xdiff_output *xo, const git_diff_options *opts) ...@@ -239,6 +239,8 @@ void git_xdiff_init(git_xdiff_output *xo, const git_diff_options *opts)
xo->params.flags |= XDF_IGNORE_WHITESPACE_CHANGE; xo->params.flags |= XDF_IGNORE_WHITESPACE_CHANGE;
if (flags & GIT_DIFF_IGNORE_WHITESPACE_EOL) if (flags & GIT_DIFF_IGNORE_WHITESPACE_EOL)
xo->params.flags |= XDF_IGNORE_WHITESPACE_AT_EOL; xo->params.flags |= XDF_IGNORE_WHITESPACE_AT_EOL;
if (flags & GIT_DIFF_INDENT_HEURISTIC)
xo->params.flags |= XDF_INDENT_HEURISTIC;
if (flags & GIT_DIFF_PATIENCE) if (flags & GIT_DIFF_PATIENCE)
xo->params.flags |= XDF_PATIENCE_DIFF; xo->params.flags |= XDF_PATIENCE_DIFF;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment