aboutsummaryrefslogtreecommitdiff
path: root/Documentation/diff-config.txt
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2016-04-19 08:21:30 -0700
committerJunio C Hamano <gitster@pobox.com>2016-04-19 10:53:34 -0700
commitd634d61ed6c5f19948937012b5e3a0ed2d631d3f (patch)
treef5c443c8ae8a4def49ffd7f147ccc82ab1420805 /Documentation/diff-config.txt
parent92e5b62fec0e9b647429e8d3736c571c434dd375 (diff)
downloadgit-d634d61ed6c5f19948937012b5e3a0ed2d631d3f.tar.gz
git-d634d61ed6c5f19948937012b5e3a0ed2d631d3f.tar.xz
xdiff: implement empty line chunk heuristic
In order to produce the smallest possible diff and combine several diff hunks together, we implement a heuristic from GNU Diff which moves diff hunks forward as far as possible when we find common context above and below a diff hunk. This sometimes produces less readable diffs when writing C, Shell, or other programming languages, ie: ... /* + * + * + */ + +/* ... instead of the more readable equivalent of ... +/* + * + * + */ + /* ... Implement the following heuristic to (optionally) produce the desired output. If there are diff chunks which can be shifted around, shift each hunk such that the last common empty line is below the chunk with the rest of the context above. This heuristic appears to resolve the above example and several other common issues without producing significantly weird results. However, as with any heuristic it is not really known whether this will always be more optimal. Thus, it can be disabled via diff.compactionHeuristic. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/diff-config.txt')
-rw-r--r--Documentation/diff-config.txt5
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt
index 6eaa45271..9bf3e923c 100644
--- a/Documentation/diff-config.txt
+++ b/Documentation/diff-config.txt
@@ -166,6 +166,11 @@ diff.tool::
include::mergetools-diff.txt[]
+diff.compactionHeuristic::
+ Set this option to enable an experimental heuristic that
+ shifts the hunk boundary in an attempt to make the resulting
+ patch easier to read.
+
diff.algorithm::
Choose a diff algorithm. The variants are as follows:
+