[PATCH v3 1/3] Demonstrate a bug in --word-diff where diff.*.wordregex is "sticky"
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Mar 14, 2012, 19:50 UTC
- Message-ID
- <4F60F67D.9050003@kdbg.org>
- In-Reply-To
- <7vsjhboujp.fsf@alter.siamese.dyndns.org>
The test case applies a custom wordRegex to one file in a diff, and expects that the default word splitting applies to the second file in the diff. But the custom wordRegex is also incorrectly used for the second file.
Helped-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- Changes in this round, where I do not resend 2/3 and 3/3:
- Use test_unconfig. - Use compare_diff_patch to check the result. - Fix a broken && chain at the end of the last test. - Name the files a.tex and z.tex as per your suggestion.
t/t4034-diff-words.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh index 5c20121..9e9643e 100755 --- a/t/t4034-diff-words.sh +++ b/t/t4034-diff-words.sh @@ -3,6 +3,7 @@ test_description='word diff colors' . ./test-lib.sh +. "$TEST_DIRECTORY"/diff-lib.sh cat >pre.simple <<-\EOF h(4) @@ -293,6 +294,10 @@ test_expect_success '--word-diff=none' ' word_diff --word-diff=plain --word-diff=none ' +test_expect_success 'unset default driver' ' + test_unconfig diff.wordregex +' + test_language_driver bibtex test_language_driver cpp test_language_driver csharp @@ -348,4 +353,35 @@ test_expect_success 'word-diff with no newline at EOF' ' word_diff --word-diff=plain ' +test_expect_success 'setup history with two files' ' + echo "a b; c" >a.tex && + echo "a b; c" >z.tex && + git add a.tex z.tex && + git commit -minitial && + + # modify both + echo "a bx; c" >a.tex && + echo "a bx; c" >z.tex && + git commit -mmodified -a +' + +test_expect_failure 'wordRegex for the first file does not apply to the second' ' + echo "a.tex diff=tex" >.gitattributes && + git config diff.tex.wordRegex "[a-z]+|." && + cat >expect <<-\EOF && + diff --git a/a.tex b/a.tex + --- a/a.tex + +++ b/a.tex + @@ -1 +1 @@ + a [-b-]{+bx+}; c + diff --git a/z.tex b/z.tex + --- a/z.tex + +++ b/z.tex + @@ -1 +1 @@ + a [-b;-]{+bx;+} c + EOF + git diff --word-diff HEAD~ >actual && + compare_diff_patch expect actual +' + test_done
-- 1.7.8.216.g2e426