mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
![Nguyễn Thái Ngọc Duy](/assets/img/avatar_default.png)
"git diff --stat" and "git apply --stat" now learn to print the line "%d files changed, %d insertions(+), %d deletions(-)" in singular form whenever applicable. "0 insertions" and "0 deletions" are also omitted unless they are both zero. This matches how versions of "diffstat" that are not prehistoric produced their output, and also makes this line translatable. [jc: with help from Thomas Dickey in archaeology of "diffstat"] [jc: squashed Jonathan's updates to illustrations in tutorials and a test] Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
62 lines
1.1 KiB
Bash
Executable file
62 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='diff --relative tests'
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
git commit --allow-empty -m empty &&
|
|
echo content >file1 &&
|
|
mkdir subdir &&
|
|
echo other content >subdir/file2 &&
|
|
git add . &&
|
|
git commit -m one
|
|
'
|
|
|
|
check_diff() {
|
|
expect=$1; shift
|
|
cat >expected <<EOF
|
|
diff --git a/$expect b/$expect
|
|
new file mode 100644
|
|
index 0000000..25c05ef
|
|
--- /dev/null
|
|
+++ b/$expect
|
|
@@ -0,0 +1 @@
|
|
+other content
|
|
EOF
|
|
test_expect_success "-p $*" "
|
|
git diff -p $* HEAD^ >actual &&
|
|
test_cmp expected actual
|
|
"
|
|
}
|
|
|
|
check_stat() {
|
|
expect=$1; shift
|
|
cat >expected <<EOF
|
|
$expect | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
EOF
|
|
test_expect_success "--stat $*" "
|
|
git diff --stat $* HEAD^ >actual &&
|
|
test_cmp expected actual
|
|
"
|
|
}
|
|
|
|
check_raw() {
|
|
expect=$1; shift
|
|
cat >expected <<EOF
|
|
:000000 100644 0000000000000000000000000000000000000000 25c05ef3639d2d270e7fe765a67668f098092bc5 A $expect
|
|
EOF
|
|
test_expect_success "--raw $*" "
|
|
git diff --no-abbrev --raw $* HEAD^ >actual &&
|
|
test_cmp expected actual
|
|
"
|
|
}
|
|
|
|
for type in diff stat raw; do
|
|
check_$type file2 --relative=subdir/
|
|
check_$type file2 --relative=subdir
|
|
check_$type dir/file2 --relative=sub
|
|
done
|
|
|
|
test_done
|