mirror of
https://github.com/git/git
synced 2024-08-24 10:15:51 +00:00
![Jeff King](/assets/img/avatar_default.png)
Many tests that predate the "verbose" helper function use a pattern like: test ... || { echo ... false } to give more verbose output. Using the helper, we can do this with a single line, and avoid a || which interacts badly with &&-chaining (besides fooling --chain-lint, we hit the error block no matter which command in the chain failed, so we may often show useless results). In most cases, the messages printed by "verbose" are equally good (in some cases better; t6006 accidentally redirects the message to a file!). The exception is t7001, whose output suffers slightly. However, it's still enough to show the user which part failed, given that we will have just printed the test script to stderr. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
98 lines
2 KiB
Bash
Executable file
98 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='rewrite diff'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success setup '
|
|
|
|
cat "$TEST_DIRECTORY"/../COPYING >test &&
|
|
git add test &&
|
|
tr \
|
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" \
|
|
"nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM" \
|
|
<"$TEST_DIRECTORY"/../COPYING >test &&
|
|
echo "to be deleted" >test2 &&
|
|
git add test2
|
|
|
|
'
|
|
|
|
test_expect_success 'detect rewrite' '
|
|
|
|
actual=$(git diff-files -B --summary test) &&
|
|
verbose expr "$actual" : " rewrite test ([0-9]*%)$"
|
|
|
|
'
|
|
|
|
cat >expect <<EOF
|
|
diff --git a/test2 b/test2
|
|
deleted file mode 100644
|
|
index 4202011..0000000
|
|
--- a/test2
|
|
+++ /dev/null
|
|
@@ -1 +0,0 @@
|
|
-to be deleted
|
|
EOF
|
|
test_expect_success 'show deletion diff without -D' '
|
|
|
|
rm test2 &&
|
|
git diff -- test2 >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
cat >expect <<EOF
|
|
diff --git a/test2 b/test2
|
|
deleted file mode 100644
|
|
index 4202011..0000000
|
|
EOF
|
|
test_expect_success 'suppress deletion diff with -D' '
|
|
|
|
git diff -D -- test2 >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'show deletion diff with -B' '
|
|
|
|
git diff -B -- test >actual &&
|
|
grep "Linus Torvalds" actual
|
|
'
|
|
|
|
test_expect_success 'suppress deletion diff with -B -D' '
|
|
|
|
git diff -B -D -- test >actual &&
|
|
grep -v "Linus Torvalds" actual
|
|
'
|
|
|
|
test_expect_success 'prepare a file that ends with an incomplete line' '
|
|
test_seq 1 99 >seq &&
|
|
printf 100 >>seq &&
|
|
git add seq &&
|
|
git commit seq -m seq
|
|
'
|
|
|
|
test_expect_success 'rewrite the middle 90% of sequence file and terminate with newline' '
|
|
test_seq 1 5 >seq &&
|
|
test_seq 9331 9420 >>seq &&
|
|
test_seq 96 100 >>seq
|
|
'
|
|
|
|
test_expect_success 'confirm that sequence file is considered a rewrite' '
|
|
git diff -B seq >res &&
|
|
grep "dissimilarity index" res
|
|
'
|
|
|
|
test_expect_success 'no newline at eof is on its own line without -B' '
|
|
git diff seq >res &&
|
|
grep "^\\\\ " res &&
|
|
! grep "^..*\\\\ " res
|
|
'
|
|
|
|
test_expect_success 'no newline at eof is on its own line with -B' '
|
|
git diff -B seq >res &&
|
|
grep "^\\\\ " res &&
|
|
! grep "^..*\\\\ " res
|
|
'
|
|
|
|
test_done
|
|
|