зеркало из https://github.com/microsoft/git.git
Merge branch 'bc/hash-independent-tests-part-6'
Test updates to prepare for SHA-2 transition continues. * bc/hash-independent-tests-part-6: t4048: abstract away SHA-1-specific constants t4045: make hash-size independent t4044: update test to work with SHA-256 t4039: abstract away SHA-1-specific constants t4038: abstract away SHA-1 specific constants t4034: abstract away SHA-1-specific constants t4027: make hash-size independent t4015: abstract away SHA-1-specific constants t4011: abstract away SHA-1-specific constants t4010: abstract away SHA-1-specific constants t3429: remove SHA1 annotation t1305: avoid comparing extensions rev-parse: add a --show-object-format option t/oid-info: add empty tree and empty blob values t/oid-info: allow looking up hash algorithm name
This commit is contained in:
Коммит
28014c1084
|
@ -274,6 +274,13 @@ print a message to stderr and exit with nonzero status.
|
|||
Show the path to the shared index file in split index mode, or
|
||||
empty if not in split-index mode.
|
||||
|
||||
--show-object-format[=(storage|input|output)]::
|
||||
Show the object format (hash algorithm) used for the repository
|
||||
for storage inside the `.git` directory, input, or output. For
|
||||
input, multiple algorithms may be printed, space-separated.
|
||||
If not specified, the default is "storage".
|
||||
|
||||
|
||||
Other Options
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -919,6 +919,17 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
|||
show_datestring("--min-age=", arg);
|
||||
continue;
|
||||
}
|
||||
if (opt_with_value(arg, "--show-object-format", &arg)) {
|
||||
const char *val = arg ? arg : "storage";
|
||||
|
||||
if (strcmp(val, "storage") &&
|
||||
strcmp(val, "input") &&
|
||||
strcmp(val, "output"))
|
||||
die("unknown mode for --show-object-format: %s",
|
||||
arg);
|
||||
puts(the_hash_algo->name);
|
||||
continue;
|
||||
}
|
||||
if (show_flag(arg) && verify)
|
||||
die_no_single_rev(quiet);
|
||||
continue;
|
||||
|
|
|
@ -6,3 +6,12 @@ hexsz sha256:64
|
|||
|
||||
zero sha1:0000000000000000000000000000000000000000
|
||||
zero sha256:0000000000000000000000000000000000000000000000000000000000000000
|
||||
|
||||
algo sha1:sha1
|
||||
algo sha256:sha256
|
||||
|
||||
empty_blob sha1:e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
|
||||
empty_blob sha256:473a0f4c3be8a93681a267e3b1e9a7dcda1185436fe141f7749120a303721813
|
||||
|
||||
empty_tree sha1:4b825dc642cb6eb9a060e54bf8d69288fbee4904
|
||||
empty_tree sha256:6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321
|
||||
|
|
|
@ -63,7 +63,7 @@ test_expect_success 'listing includes option and expansion' '
|
|||
test.one=1
|
||||
EOF
|
||||
git config --list >actual.full &&
|
||||
grep -v ^core actual.full >actual &&
|
||||
grep -v -e ^core -e ^extensions actual.full >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ test_rev_parse () {
|
|||
ROOT=$(pwd)
|
||||
|
||||
test_expect_success 'setup' '
|
||||
test_oid_init &&
|
||||
mkdir -p sub/dir work &&
|
||||
cp -R .git repo.git
|
||||
'
|
||||
|
@ -131,6 +132,20 @@ test_expect_success 'rev-parse --is-shallow-repository in non-shallow repo' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'rev-parse --show-object-format in repo' '
|
||||
echo "$(test_oid algo)" >expect &&
|
||||
git rev-parse --show-object-format >actual &&
|
||||
test_cmp expect actual &&
|
||||
git rev-parse --show-object-format=storage >actual &&
|
||||
test_cmp expect actual &&
|
||||
git rev-parse --show-object-format=input >actual &&
|
||||
test_cmp expect actual &&
|
||||
git rev-parse --show-object-format=output >actual &&
|
||||
test_cmp expect actual &&
|
||||
test_must_fail git rev-parse --show-object-format=squeamish-ossifrage 2>err &&
|
||||
grep "unknown mode for --show-object-format: squeamish-ossifrage" err
|
||||
'
|
||||
|
||||
test_expect_success 'showing the superproject correctly' '
|
||||
git rev-parse --show-superproject-working-tree >out &&
|
||||
test_must_be_empty out &&
|
||||
|
|
|
@ -17,7 +17,7 @@ test_expect_success 'rebase exec modifies rebase-todo' '
|
|||
test -e F
|
||||
'
|
||||
|
||||
test_expect_success SHA1 'loose object cache vs re-reading todo list' '
|
||||
test_expect_success 'loose object cache vs re-reading todo list' '
|
||||
GIT_REBASE_TODO=.git/rebase-merge/git-rebase-todo &&
|
||||
export GIT_REBASE_TODO &&
|
||||
write_script append-todo.sh <<-\EOS &&
|
||||
|
|
|
@ -17,11 +17,15 @@ test_expect_success \
|
|||
'echo frotz >file0 &&
|
||||
mkdir path1 &&
|
||||
echo rezrov >path1/file1 &&
|
||||
before0=$(git hash-object file0) &&
|
||||
before1=$(git hash-object path1/file1) &&
|
||||
git update-index --add file0 path1/file1 &&
|
||||
tree=$(git write-tree) &&
|
||||
echo "$tree" &&
|
||||
echo nitfol >file0 &&
|
||||
echo yomin >path1/file1 &&
|
||||
after0=$(git hash-object file0) &&
|
||||
after1=$(git hash-object path1/file1) &&
|
||||
git update-index file0 path1/file1'
|
||||
|
||||
cat >expected <<\EOF
|
||||
|
@ -31,32 +35,32 @@ test_expect_success \
|
|||
'git diff-index --cached $tree -- path >current &&
|
||||
compare_diff_raw current expected'
|
||||
|
||||
cat >expected <<\EOF
|
||||
:100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M path1/file1
|
||||
cat >expected <<EOF
|
||||
:100644 100644 $before1 $after1 M path1/file1
|
||||
EOF
|
||||
test_expect_success \
|
||||
'limit to path1 should show path1/file1' \
|
||||
'git diff-index --cached $tree -- path1 >current &&
|
||||
compare_diff_raw current expected'
|
||||
|
||||
cat >expected <<\EOF
|
||||
:100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M path1/file1
|
||||
cat >expected <<EOF
|
||||
:100644 100644 $before1 $after1 M path1/file1
|
||||
EOF
|
||||
test_expect_success \
|
||||
'limit to path1/ should show path1/file1' \
|
||||
'git diff-index --cached $tree -- path1/ >current &&
|
||||
compare_diff_raw current expected'
|
||||
|
||||
cat >expected <<\EOF
|
||||
:100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M path1/file1
|
||||
cat >expected <<EOF
|
||||
:100644 100644 $before1 $after1 M path1/file1
|
||||
EOF
|
||||
test_expect_success \
|
||||
'"*file1" should show path1/file1' \
|
||||
'git diff-index --cached $tree -- "*file1" >current &&
|
||||
compare_diff_raw current expected'
|
||||
|
||||
cat >expected <<\EOF
|
||||
:100644 100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df dca6b92303befc93086aa025d90a5facd7eb2812 M file0
|
||||
cat >expected <<EOF
|
||||
:100644 100644 $before0 $after0 M file0
|
||||
EOF
|
||||
test_expect_success \
|
||||
'limit to file0 should show file0' \
|
||||
|
|
|
@ -9,11 +9,24 @@ test_description='Test diff of symlinks.
|
|||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/diff-lib.sh
|
||||
|
||||
# Print the short OID of a symlink with the given name.
|
||||
symlink_oid () {
|
||||
local oid=$(printf "%s" "$1" | git hash-object --stdin) &&
|
||||
git rev-parse --short "$oid"
|
||||
}
|
||||
|
||||
# Print the short OID of the given file.
|
||||
short_oid () {
|
||||
local oid=$(git hash-object "$1") &&
|
||||
git rev-parse --short "$oid"
|
||||
}
|
||||
|
||||
test_expect_success 'diff new symlink and file' '
|
||||
cat >expected <<-\EOF &&
|
||||
symlink=$(symlink_oid xyzzy) &&
|
||||
cat >expected <<-EOF &&
|
||||
diff --git a/frotz b/frotz
|
||||
new file mode 120000
|
||||
index 0000000..7c465af
|
||||
index 0000000..$symlink
|
||||
--- /dev/null
|
||||
+++ b/frotz
|
||||
@@ -0,0 +1 @@
|
||||
|
@ -21,7 +34,7 @@ test_expect_success 'diff new symlink and file' '
|
|||
\ No newline at end of file
|
||||
diff --git a/nitfol b/nitfol
|
||||
new file mode 100644
|
||||
index 0000000..7c465af
|
||||
index 0000000..$symlink
|
||||
--- /dev/null
|
||||
+++ b/nitfol
|
||||
@@ -0,0 +1 @@
|
||||
|
@ -46,10 +59,10 @@ test_expect_success 'diff unchanged symlink and file' '
|
|||
'
|
||||
|
||||
test_expect_success 'diff removed symlink and file' '
|
||||
cat >expected <<-\EOF &&
|
||||
cat >expected <<-EOF &&
|
||||
diff --git a/frotz b/frotz
|
||||
deleted file mode 120000
|
||||
index 7c465af..0000000
|
||||
index $symlink..0000000
|
||||
--- a/frotz
|
||||
+++ /dev/null
|
||||
@@ -1 +0,0 @@
|
||||
|
@ -57,7 +70,7 @@ test_expect_success 'diff removed symlink and file' '
|
|||
\ No newline at end of file
|
||||
diff --git a/nitfol b/nitfol
|
||||
deleted file mode 100644
|
||||
index 7c465af..0000000
|
||||
index $symlink..0000000
|
||||
--- a/nitfol
|
||||
+++ /dev/null
|
||||
@@ -1 +0,0 @@
|
||||
|
@ -90,9 +103,10 @@ test_expect_success 'diff identical, but newly created symlink and file' '
|
|||
'
|
||||
|
||||
test_expect_success 'diff different symlink and file' '
|
||||
cat >expected <<-\EOF &&
|
||||
new=$(symlink_oid yxyyz) &&
|
||||
cat >expected <<-EOF &&
|
||||
diff --git a/frotz b/frotz
|
||||
index 7c465af..df1db54 120000
|
||||
index $symlink..$new 120000
|
||||
--- a/frotz
|
||||
+++ b/frotz
|
||||
@@ -1 +1 @@
|
||||
|
@ -101,7 +115,7 @@ test_expect_success 'diff different symlink and file' '
|
|||
+yxyyz
|
||||
\ No newline at end of file
|
||||
diff --git a/nitfol b/nitfol
|
||||
index 7c465af..df1db54 100644
|
||||
index $symlink..$new 100644
|
||||
--- a/nitfol
|
||||
+++ b/nitfol
|
||||
@@ -1 +1 @@
|
||||
|
@ -137,14 +151,16 @@ test_expect_success SYMLINKS 'setup symlinks with attributes' '
|
|||
'
|
||||
|
||||
test_expect_success SYMLINKS 'symlinks do not respect userdiff config by path' '
|
||||
cat >expect <<-\EOF &&
|
||||
file=$(short_oid file.bin) &&
|
||||
link=$(symlink_oid file.bin) &&
|
||||
cat >expect <<-EOF &&
|
||||
diff --git a/file.bin b/file.bin
|
||||
new file mode 100644
|
||||
index 0000000..d95f3ad
|
||||
index 0000000..$file
|
||||
Binary files /dev/null and b/file.bin differ
|
||||
diff --git a/link.bin b/link.bin
|
||||
new file mode 120000
|
||||
index 0000000..dce41ec
|
||||
index 0000000..$link
|
||||
--- /dev/null
|
||||
+++ b/link.bin
|
||||
@@ -0,0 +1 @@
|
||||
|
|
|
@ -16,6 +16,7 @@ test_expect_success "Ray Lehtiniemi's example" '
|
|||
} while (0);
|
||||
EOF
|
||||
git update-index --add x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
cat <<-\EOF >x &&
|
||||
do
|
||||
|
@ -24,10 +25,11 @@ test_expect_success "Ray Lehtiniemi's example" '
|
|||
}
|
||||
while (0);
|
||||
EOF
|
||||
after=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
cat <<-\EOF >expect &&
|
||||
cat <<-EOF >expect &&
|
||||
diff --git a/x b/x
|
||||
index adf3937..6edc172 100644
|
||||
index $before..$after 100644
|
||||
--- a/x
|
||||
+++ b/x
|
||||
@@ -1,3 +1,5 @@
|
||||
|
@ -61,6 +63,7 @@ test_expect_success 'another test, without options' '
|
|||
EOF
|
||||
|
||||
git update-index x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
tr "_" " " <<-\EOF >x &&
|
||||
_ whitespace at beginning
|
||||
|
@ -70,10 +73,11 @@ test_expect_success 'another test, without options' '
|
|||
unchanged line
|
||||
CR at end
|
||||
EOF
|
||||
after=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
tr "Q_" "\015 " <<-\EOF >expect &&
|
||||
tr "Q_" "\015 " <<-EOF >expect &&
|
||||
diff --git a/x b/x
|
||||
index d99af23..22d9f73 100644
|
||||
index $before..$after 100644
|
||||
--- a/x
|
||||
+++ b/x
|
||||
@@ -1,6 +1,6 @@
|
||||
|
@ -108,9 +112,9 @@ test_expect_success 'another test, without options' '
|
|||
git diff -w --ignore-cr-at-eol >out &&
|
||||
test_must_be_empty out &&
|
||||
|
||||
tr "Q_" "\015 " <<-\EOF >expect &&
|
||||
tr "Q_" "\015 " <<-EOF >expect &&
|
||||
diff --git a/x b/x
|
||||
index d99af23..22d9f73 100644
|
||||
index $before..$after 100644
|
||||
--- a/x
|
||||
+++ b/x
|
||||
@@ -1,6 +1,6 @@
|
||||
|
@ -132,9 +136,9 @@ test_expect_success 'another test, without options' '
|
|||
git diff -b --ignore-cr-at-eol >out &&
|
||||
test_cmp expect out &&
|
||||
|
||||
tr "Q_" "\015 " <<-\EOF >expect &&
|
||||
tr "Q_" "\015 " <<-EOF >expect &&
|
||||
diff --git a/x b/x
|
||||
index d99af23..22d9f73 100644
|
||||
index $before..$after 100644
|
||||
--- a/x
|
||||
+++ b/x
|
||||
@@ -1,6 +1,6 @@
|
||||
|
@ -154,9 +158,9 @@ test_expect_success 'another test, without options' '
|
|||
git diff --ignore-space-at-eol --ignore-cr-at-eol >out &&
|
||||
test_cmp expect out &&
|
||||
|
||||
tr "Q_" "\015 " <<-\EOF >expect &&
|
||||
tr "Q_" "\015 " <<-EOF >expect &&
|
||||
diff --git a/x b/x
|
||||
index_d99af23..22d9f73 100644
|
||||
index_$before..$after 100644
|
||||
--- a/x
|
||||
+++ b/x
|
||||
@@ -1,6 +1,6 @@
|
||||
|
@ -786,23 +790,25 @@ test_expect_success 'whitespace-only changes not reported' '
|
|||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
cat <<EOF >expect
|
||||
diff --git a/x b/z
|
||||
similarity index NUM%
|
||||
rename from x
|
||||
rename to z
|
||||
index 380c32a..a97b785 100644
|
||||
EOF
|
||||
test_expect_success 'whitespace-only changes reported across renames' '
|
||||
git reset --hard &&
|
||||
for i in 1 2 3 4 5 6 7 8 9; do echo "$i$i$i$i$i$i"; done >x &&
|
||||
git add x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
git commit -m "base" &&
|
||||
sed -e "5s/^/ /" x >z &&
|
||||
git rm x &&
|
||||
git add z &&
|
||||
after=$(git rev-parse --short $(git hash-object z)) &&
|
||||
git diff -w -M --cached |
|
||||
sed -e "/^similarity index /s/[0-9][0-9]*/NUM/" >actual &&
|
||||
cat <<-EOF >expect &&
|
||||
diff --git a/x b/z
|
||||
similarity index NUM%
|
||||
rename from x
|
||||
rename to z
|
||||
index $before..$after 100644
|
||||
EOF
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
@ -858,13 +864,15 @@ test_expect_success 'diff that introduces a line with only tabs' '
|
|||
git config core.whitespace blank-at-eol &&
|
||||
git reset --hard &&
|
||||
echo "test" >x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
git commit -m "initial" x &&
|
||||
echo "{NTN}" | tr "NT" "\n\t" >>x &&
|
||||
after=$(git rev-parse --short $(git hash-object x)) &&
|
||||
git diff --color | test_decode_color >current &&
|
||||
|
||||
cat >expected <<-\EOF &&
|
||||
cat >expected <<-EOF &&
|
||||
<BOLD>diff --git a/x b/x<RESET>
|
||||
<BOLD>index 9daeafb..2874b91 100644<RESET>
|
||||
<BOLD>index $before..$after 100644<RESET>
|
||||
<BOLD>--- a/x<RESET>
|
||||
<BOLD>+++ b/x<RESET>
|
||||
<CYAN>@@ -1 +1,4 @@<RESET>
|
||||
|
@ -883,19 +891,21 @@ test_expect_success 'diff that introduces and removes ws breakages' '
|
|||
echo "0. blank-at-eol " &&
|
||||
echo "1. blank-at-eol "
|
||||
} >x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
git commit -a --allow-empty -m preimage &&
|
||||
{
|
||||
echo "0. blank-at-eol " &&
|
||||
echo "1. still-blank-at-eol " &&
|
||||
echo "2. and a new line "
|
||||
} >x &&
|
||||
after=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
git diff --color |
|
||||
test_decode_color >current &&
|
||||
|
||||
cat >expected <<-\EOF &&
|
||||
cat >expected <<-EOF &&
|
||||
<BOLD>diff --git a/x b/x<RESET>
|
||||
<BOLD>index d0233a2..700886e 100644<RESET>
|
||||
<BOLD>index $before..$after 100644<RESET>
|
||||
<BOLD>--- a/x<RESET>
|
||||
<BOLD>+++ b/x<RESET>
|
||||
<CYAN>@@ -1,2 +1,3 @@<RESET>
|
||||
|
@ -915,16 +925,18 @@ test_expect_success 'ws-error-highlight test setup' '
|
|||
echo "0. blank-at-eol " &&
|
||||
echo "1. blank-at-eol "
|
||||
} >x &&
|
||||
before=$(git rev-parse --short $(git hash-object x)) &&
|
||||
git commit -a --allow-empty -m preimage &&
|
||||
{
|
||||
echo "0. blank-at-eol " &&
|
||||
echo "1. still-blank-at-eol " &&
|
||||
echo "2. and a new line "
|
||||
} >x &&
|
||||
after=$(git rev-parse --short $(git hash-object x)) &&
|
||||
|
||||
cat >expect.default-old <<-\EOF &&
|
||||
cat >expect.default-old <<-EOF &&
|
||||
<BOLD>diff --git a/x b/x<RESET>
|
||||
<BOLD>index d0233a2..700886e 100644<RESET>
|
||||
<BOLD>index $before..$after 100644<RESET>
|
||||
<BOLD>--- a/x<RESET>
|
||||
<BOLD>+++ b/x<RESET>
|
||||
<CYAN>@@ -1,2 +1,3 @@<RESET>
|
||||
|
@ -934,9 +946,9 @@ test_expect_success 'ws-error-highlight test setup' '
|
|||
<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>
|
||||
EOF
|
||||
|
||||
cat >expect.all <<-\EOF &&
|
||||
cat >expect.all <<-EOF &&
|
||||
<BOLD>diff --git a/x b/x<RESET>
|
||||
<BOLD>index d0233a2..700886e 100644<RESET>
|
||||
<BOLD>index $before..$after 100644<RESET>
|
||||
<BOLD>--- a/x<RESET>
|
||||
<BOLD>+++ b/x<RESET>
|
||||
<CYAN>@@ -1,2 +1,3 @@<RESET>
|
||||
|
@ -946,9 +958,9 @@ test_expect_success 'ws-error-highlight test setup' '
|
|||
<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>
|
||||
EOF
|
||||
|
||||
cat >expect.none <<-\EOF
|
||||
cat >expect.none <<-EOF
|
||||
<BOLD>diff --git a/x b/x<RESET>
|
||||
<BOLD>index d0233a2..700886e 100644<RESET>
|
||||
<BOLD>index $before..$after 100644<RESET>
|
||||
<BOLD>--- a/x<RESET>
|
||||
<BOLD>+++ b/x<RESET>
|
||||
<CYAN>@@ -1,2 +1,3 @@<RESET>
|
||||
|
@ -1022,14 +1034,15 @@ test_expect_success 'detect moved code, complete file' '
|
|||
EOF
|
||||
git add test.c &&
|
||||
git commit -m "add main function" &&
|
||||
file=$(git rev-parse --short HEAD:test.c) &&
|
||||
git mv test.c main.c &&
|
||||
test_config color.diff.oldMoved "normal red" &&
|
||||
test_config color.diff.newMoved "normal green" &&
|
||||
git diff HEAD --color-moved=zebra --color --no-renames | test_decode_color >actual &&
|
||||
cat >expected <<-\EOF &&
|
||||
cat >expected <<-EOF &&
|
||||
<BOLD>diff --git a/main.c b/main.c<RESET>
|
||||
<BOLD>new file mode 100644<RESET>
|
||||
<BOLD>index 0000000..a986c57<RESET>
|
||||
<BOLD>index 0000000..$file<RESET>
|
||||
<BOLD>--- /dev/null<RESET>
|
||||
<BOLD>+++ b/main.c<RESET>
|
||||
<CYAN>@@ -0,0 +1,5 @@<RESET>
|
||||
|
@ -1040,7 +1053,7 @@ test_expect_success 'detect moved code, complete file' '
|
|||
<BGREEN>+<RESET><BGREEN>}<RESET>
|
||||
<BOLD>diff --git a/test.c b/test.c<RESET>
|
||||
<BOLD>deleted file mode 100644<RESET>
|
||||
<BOLD>index a986c57..0000000<RESET>
|
||||
<BOLD>index $file..0000000<RESET>
|
||||
<BOLD>--- a/test.c<RESET>
|
||||
<BOLD>+++ /dev/null<RESET>
|
||||
<CYAN>@@ -1,5 +0,0 @@<RESET>
|
||||
|
@ -1094,6 +1107,8 @@ test_expect_success 'detect malicious moved code, inside file' '
|
|||
EOF
|
||||
git add main.c test.c &&
|
||||
git commit -m "add main and test file" &&
|
||||
before_main=$(git rev-parse --short HEAD:main.c) &&
|
||||
before_test=$(git rev-parse --short HEAD:test.c) &&
|
||||
cat <<-\EOF >main.c &&
|
||||
#include<stdio.h>
|
||||
int stuff()
|
||||
|
@ -1126,10 +1141,12 @@ test_expect_success 'detect malicious moved code, inside file' '
|
|||
bar();
|
||||
}
|
||||
EOF
|
||||
after_main=$(git rev-parse --short $(git hash-object main.c)) &&
|
||||
after_test=$(git rev-parse --short $(git hash-object test.c)) &&
|
||||
git diff HEAD --no-renames --color-moved=zebra --color | test_decode_color >actual &&
|
||||
cat <<-\EOF >expected &&
|
||||
cat <<-EOF >expected &&
|
||||
<BOLD>diff --git a/main.c b/main.c<RESET>
|
||||
<BOLD>index 27a619c..7cf9336 100644<RESET>
|
||||
<BOLD>index $before_main..$after_main 100644<RESET>
|
||||
<BOLD>--- a/main.c<RESET>
|
||||
<BOLD>+++ b/main.c<RESET>
|
||||
<CYAN>@@ -5,13 +5,6 @@<RESET> <RESET>printf("Hello ");<RESET>
|
||||
|
@ -1147,7 +1164,7 @@ test_expect_success 'detect malicious moved code, inside file' '
|
|||
{<RESET>
|
||||
foo();<RESET>
|
||||
<BOLD>diff --git a/test.c b/test.c<RESET>
|
||||
<BOLD>index 1dc1d85..2bedec9 100644<RESET>
|
||||
<BOLD>index $before_test..$after_test 100644<RESET>
|
||||
<BOLD>--- a/test.c<RESET>
|
||||
<BOLD>+++ b/test.c<RESET>
|
||||
<CYAN>@@ -4,6 +4,13 @@<RESET> <RESET>int bar()<RESET>
|
||||
|
@ -1176,9 +1193,9 @@ test_expect_success 'plain moved code, inside file' '
|
|||
test_config color.diff.newMovedAlternative "yellow" &&
|
||||
# needs previous test as setup
|
||||
git diff HEAD --no-renames --color-moved=plain --color | test_decode_color >actual &&
|
||||
cat <<-\EOF >expected &&
|
||||
cat <<-EOF >expected &&
|
||||
<BOLD>diff --git a/main.c b/main.c<RESET>
|
||||
<BOLD>index 27a619c..7cf9336 100644<RESET>
|
||||
<BOLD>index $before_main..$after_main 100644<RESET>
|
||||
<BOLD>--- a/main.c<RESET>
|
||||
<BOLD>+++ b/main.c<RESET>
|
||||
<CYAN>@@ -5,13 +5,6 @@<RESET> <RESET>printf("Hello ");<RESET>
|
||||
|
@ -1196,7 +1213,7 @@ test_expect_success 'plain moved code, inside file' '
|
|||
{<RESET>
|
||||
foo();<RESET>
|
||||
<BOLD>diff --git a/test.c b/test.c<RESET>
|
||||
<BOLD>index 1dc1d85..2bedec9 100644<RESET>
|
||||
<BOLD>index $before_test..$after_test 100644<RESET>
|
||||
<BOLD>--- a/test.c<RESET>
|
||||
<BOLD>+++ b/test.c<RESET>
|
||||
<CYAN>@@ -4,6 +4,13 @@<RESET> <RESET>int bar()<RESET>
|
||||
|
|
|
@ -6,6 +6,7 @@ test_description='difference in submodules'
|
|||
. "$TEST_DIRECTORY"/diff-lib.sh
|
||||
|
||||
test_expect_success setup '
|
||||
test_oid_init &&
|
||||
test_tick &&
|
||||
test_create_repo sub &&
|
||||
(
|
||||
|
@ -36,7 +37,8 @@ test_expect_success setup '
|
|||
'
|
||||
|
||||
test_expect_success 'git diff --raw HEAD' '
|
||||
git diff --raw --abbrev=40 HEAD >actual &&
|
||||
hexsz=$(test_oid hexsz) &&
|
||||
git diff --raw --abbrev=$hexsz HEAD >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
@ -245,23 +247,21 @@ test_expect_success 'git diff (empty submodule dir)' '
|
|||
'
|
||||
|
||||
test_expect_success 'conflicted submodule setup' '
|
||||
|
||||
# 39 efs
|
||||
c=fffffffffffffffffffffffffffffffffffffff &&
|
||||
c=$(test_oid ff_1) &&
|
||||
(
|
||||
echo "000000 $ZERO_OID 0 sub" &&
|
||||
echo "160000 1$c 1 sub" &&
|
||||
echo "160000 2$c 2 sub" &&
|
||||
echo "160000 3$c 3 sub"
|
||||
) | git update-index --index-info &&
|
||||
echo >expect.nosub '\''diff --cc sub
|
||||
echo >expect.nosub "diff --cc sub
|
||||
index 2ffffff,3ffffff..0000000
|
||||
--- a/sub
|
||||
+++ b/sub
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
- Subproject commit 2fffffffffffffffffffffffffffffffffffffff
|
||||
-Subproject commit 3fffffffffffffffffffffffffffffffffffffff
|
||||
++Subproject commit 0000000000000000000000000000000000000000'\'' &&
|
||||
- Subproject commit 2$c
|
||||
-Subproject commit 3$c
|
||||
++Subproject commit $ZERO_OID" &&
|
||||
|
||||
hh=$(git rev-parse HEAD) &&
|
||||
sed -e "s/$ZERO_OID/$hh/" expect.nosub >expect.withsub
|
||||
|
|
|
@ -19,9 +19,11 @@ cat >post.simple <<-\EOF
|
|||
|
||||
aeff = aeff * ( aaa )
|
||||
EOF
|
||||
cat >expect.letter-runs-are-words <<-\EOF
|
||||
pre=$(git rev-parse --short $(git hash-object pre.simple))
|
||||
post=$(git rev-parse --short $(git hash-object post.simple))
|
||||
cat >expect.letter-runs-are-words <<-EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -33,9 +35,9 @@ cat >expect.letter-runs-are-words <<-\EOF
|
|||
|
||||
<GREEN>aeff = aeff * ( aaa<RESET> )
|
||||
EOF
|
||||
cat >expect.non-whitespace-is-word <<-\EOF
|
||||
cat >expect.non-whitespace-is-word <<-EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -49,9 +51,12 @@ cat >expect.non-whitespace-is-word <<-\EOF
|
|||
EOF
|
||||
|
||||
word_diff () {
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
test_must_fail git diff --no-index "$@" pre post >output &&
|
||||
test_decode_color <output >output.decrypted &&
|
||||
test_cmp expect output.decrypted
|
||||
sed -e "2s/index [^ ]*/index $pre..$post/" expect >expected
|
||||
test_cmp expected output.decrypted
|
||||
}
|
||||
|
||||
test_language_driver () {
|
||||
|
@ -77,9 +82,9 @@ test_expect_success 'set up pre and post with runs of whitespace' '
|
|||
'
|
||||
|
||||
test_expect_success 'word diff with runs of whitespace' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -97,9 +102,9 @@ test_expect_success 'word diff with runs of whitespace' '
|
|||
'
|
||||
|
||||
test_expect_success '--word-diff=porcelain' '
|
||||
sed 's/#.*$//' >expect <<-\EOF &&
|
||||
sed 's/#.*$//' >expect <<-EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
index $pre..$post 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
|
@ -121,9 +126,9 @@ test_expect_success '--word-diff=porcelain' '
|
|||
'
|
||||
|
||||
test_expect_success '--word-diff=plain' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
index $pre..$post 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
|
@ -140,9 +145,9 @@ test_expect_success '--word-diff=plain' '
|
|||
'
|
||||
|
||||
test_expect_success '--word-diff=plain --color' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -158,9 +163,9 @@ test_expect_success '--word-diff=plain --color' '
|
|||
'
|
||||
|
||||
test_expect_success 'word diff without context' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
|
@ -207,9 +212,9 @@ test_expect_success 'command-line overrides config' '
|
|||
'
|
||||
|
||||
test_expect_success 'command-line overrides config: --word-diff-regex' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -234,9 +239,9 @@ test_expect_success 'setup: remove diff driver regex' '
|
|||
'
|
||||
|
||||
test_expect_success 'use configured regex' '
|
||||
cat >expect <<-\EOF &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
|
@ -254,9 +259,11 @@ test_expect_success 'use configured regex' '
|
|||
test_expect_success 'test parsing words for newline' '
|
||||
echo "aaa (aaa)" >pre &&
|
||||
echo "aaa (aaa) aaa" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index c29453b..be22f37 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
|
@ -268,9 +275,11 @@ test_expect_success 'test parsing words for newline' '
|
|||
test_expect_success 'test when words are only removed at the end' '
|
||||
echo "(:" >pre &&
|
||||
echo "(" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
cat >expect <<-EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 289cb9d..2d06f37 100644<RESET>
|
||||
<BOLD>index $pre..$post 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
|
@ -282,9 +291,11 @@ test_expect_success 'test when words are only removed at the end' '
|
|||
test_expect_success '--word-diff=none' '
|
||||
echo "(:" >pre &&
|
||||
echo "(" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
cat >expect <<-EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 289cb9d..2d06f37 100644
|
||||
index $pre..$post 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1 +1 @@
|
||||
|
@ -317,16 +328,6 @@ test_language_driver ruby
|
|||
test_language_driver tex
|
||||
|
||||
test_expect_success 'word-diff with diff.sbe' '
|
||||
cat >expect <<-\EOF &&
|
||||
diff --git a/pre b/post
|
||||
index a1a53b5..bc8fe6d 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,3 @@
|
||||
a
|
||||
|
||||
[-b-]{+c+}
|
||||
EOF
|
||||
cat >pre <<-\EOF &&
|
||||
a
|
||||
|
||||
|
@ -337,21 +338,35 @@ test_expect_success 'word-diff with diff.sbe' '
|
|||
|
||||
c
|
||||
EOF
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
cat >expect <<-EOF &&
|
||||
diff --git a/pre b/post
|
||||
index $pre..$post 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,3 @@
|
||||
a
|
||||
|
||||
[-b-]{+c+}
|
||||
EOF
|
||||
test_config diff.suppress-blank-empty true &&
|
||||
word_diff --word-diff=plain
|
||||
'
|
||||
|
||||
test_expect_success 'word-diff with no newline at EOF' '
|
||||
cat >expect <<-\EOF &&
|
||||
printf "%s" "a a a a a" >pre &&
|
||||
printf "%s" "a a ab a a" >post &&
|
||||
pre=$(git rev-parse --short $(git hash-object pre)) &&
|
||||
post=$(git rev-parse --short $(git hash-object post)) &&
|
||||
cat >expect <<-EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 7bf316e..3dd0303 100644
|
||||
index $pre..$post 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1 +1 @@
|
||||
a a [-a-]{+ab+} a a
|
||||
EOF
|
||||
printf "%s" "a a a a a" >pre &&
|
||||
printf "%s" "a a ab a a" >post &&
|
||||
word_diff --word-diff=plain
|
||||
'
|
||||
|
||||
|
|
|
@ -440,11 +440,13 @@ test_expect_success 'setup for --combined-all-paths' '
|
|||
git branch side2c &&
|
||||
git checkout side1c &&
|
||||
test_seq 1 10 >filename-side1c &&
|
||||
side1cf=$(git hash-object filename-side1c) &&
|
||||
git add filename-side1c &&
|
||||
git commit -m with &&
|
||||
git checkout side2c &&
|
||||
test_seq 1 9 >filename-side2c &&
|
||||
echo ten >>filename-side2c &&
|
||||
side2cf=$(git hash-object filename-side2c) &&
|
||||
git add filename-side2c &&
|
||||
git commit -m iam &&
|
||||
git checkout -b mergery side1c &&
|
||||
|
@ -452,13 +454,14 @@ test_expect_success 'setup for --combined-all-paths' '
|
|||
git rm filename-side1c &&
|
||||
echo eleven >>filename-side2c &&
|
||||
git mv filename-side2c filename-merged &&
|
||||
mergedf=$(git hash-object filename-merged) &&
|
||||
git add filename-merged &&
|
||||
git commit
|
||||
'
|
||||
|
||||
test_expect_success '--combined-all-paths and --raw' '
|
||||
cat <<-\EOF >expect &&
|
||||
::100644 100644 100644 f00c965d8307308469e537302baa73048488f162 088bd5d92c2a8e0203ca8e7e4c2a5c692f6ae3f7 333b9c62519f285e1854830ade0fe1ef1d40ee1b RR filename-side1c filename-side2c filename-merged
|
||||
cat <<-EOF >expect &&
|
||||
::100644 100644 100644 $side1cf $side2cf $mergedf RR filename-side1c filename-side2c filename-merged
|
||||
EOF
|
||||
git diff-tree -c -M --raw --combined-all-paths HEAD >actual.tmp &&
|
||||
sed 1d <actual.tmp >actual &&
|
||||
|
@ -482,11 +485,13 @@ test_expect_success FUNNYNAMES 'setup for --combined-all-paths with funny names'
|
|||
git checkout side1d &&
|
||||
test_seq 1 10 >"$(printf "file\twith\ttabs")" &&
|
||||
git add file* &&
|
||||
side1df=$(git hash-object *tabs) &&
|
||||
git commit -m with &&
|
||||
git checkout side2d &&
|
||||
test_seq 1 9 >"$(printf "i\tam\ttabbed")" &&
|
||||
echo ten >>"$(printf "i\tam\ttabbed")" &&
|
||||
git add *tabbed &&
|
||||
side2df=$(git hash-object *tabbed) &&
|
||||
git commit -m iam &&
|
||||
git checkout -b funny-names-mergery side1d &&
|
||||
git merge --no-commit side2d &&
|
||||
|
@ -494,12 +499,14 @@ test_expect_success FUNNYNAMES 'setup for --combined-all-paths with funny names'
|
|||
echo eleven >>"$(printf "i\tam\ttabbed")" &&
|
||||
git mv "$(printf "i\tam\ttabbed")" "$(printf "fickle\tnaming")" &&
|
||||
git add fickle* &&
|
||||
git commit
|
||||
headf=$(git hash-object fickle*) &&
|
||||
git commit &&
|
||||
head=$(git rev-parse HEAD)
|
||||
'
|
||||
|
||||
test_expect_success FUNNYNAMES '--combined-all-paths and --raw and funny names' '
|
||||
cat <<-\EOF >expect &&
|
||||
::100644 100644 100644 f00c965d8307308469e537302baa73048488f162 088bd5d92c2a8e0203ca8e7e4c2a5c692f6ae3f7 333b9c62519f285e1854830ade0fe1ef1d40ee1b RR "file\twith\ttabs" "i\tam\ttabbed" "fickle\tnaming"
|
||||
cat <<-EOF >expect &&
|
||||
::100644 100644 100644 $side1df $side2df $headf RR "file\twith\ttabs" "i\tam\ttabbed" "fickle\tnaming"
|
||||
EOF
|
||||
git diff-tree -c -M --raw --combined-all-paths HEAD >actual.tmp &&
|
||||
sed 1d <actual.tmp >actual &&
|
||||
|
@ -507,7 +514,7 @@ test_expect_success FUNNYNAMES '--combined-all-paths and --raw and funny names'
|
|||
'
|
||||
|
||||
test_expect_success FUNNYNAMES '--combined-all-paths and --raw -and -z and funny names' '
|
||||
printf "aaf8087c3cbd4db8e185a2d074cf27c53cfb75d7\0::100644 100644 100644 f00c965d8307308469e537302baa73048488f162 088bd5d92c2a8e0203ca8e7e4c2a5c692f6ae3f7 333b9c62519f285e1854830ade0fe1ef1d40ee1b RR\0file\twith\ttabs\0i\tam\ttabbed\0fickle\tnaming\0" >expect &&
|
||||
printf "$head\0::100644 100644 100644 $side1df $side2df $headf RR\0file\twith\ttabs\0i\tam\ttabbed\0fickle\tnaming\0" >expect &&
|
||||
git diff-tree -c -M --raw --combined-all-paths -z HEAD >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
|
|
@ -12,6 +12,7 @@ test_expect_success 'setup' '
|
|||
git commit -m zero &&
|
||||
echo one > one &&
|
||||
echo two > two &&
|
||||
blob=$(git hash-object one) &&
|
||||
git add one two &&
|
||||
git commit -m onetwo &&
|
||||
git update-index --assume-unchanged one &&
|
||||
|
@ -20,7 +21,7 @@ test_expect_success 'setup' '
|
|||
'
|
||||
|
||||
test_expect_success 'diff-index does not examine assume-unchanged entries' '
|
||||
git diff-index HEAD^ -- one | grep -q 5626abf0f72e58d7a153368ba57db4c673c0e171
|
||||
git diff-index HEAD^ -- one | grep -q $blob
|
||||
'
|
||||
|
||||
test_expect_success 'diff-files does not examine assume-unchanged entries' '
|
||||
|
|
|
@ -3,34 +3,48 @@
|
|||
test_description='test unique sha1 abbreviation on "index from..to" line'
|
||||
. ./test-lib.sh
|
||||
|
||||
if ! test_have_prereq SHA1
|
||||
then
|
||||
skip_all='not using SHA-1 for objects'
|
||||
test_done
|
||||
fi
|
||||
|
||||
cat >expect_initial <<EOF
|
||||
100644 blob 51d2738463ea4ca66f8691c91e33ce64b7d41bb1 foo
|
||||
EOF
|
||||
|
||||
cat >expect_update <<EOF
|
||||
100644 blob 51d2738efb4ad8a1e40bed839ab8e116f0a15e47 foo
|
||||
EOF
|
||||
|
||||
test_expect_success 'setup' '
|
||||
echo 4827 > foo &&
|
||||
test_oid_cache <<-EOF &&
|
||||
val1 sha1:4827
|
||||
val1 sha256:5664
|
||||
|
||||
val2 sha1:11742
|
||||
val2 sha256:10625
|
||||
|
||||
hash1 sha1:51d2738463ea4ca66f8691c91e33ce64b7d41bb1
|
||||
hash1 sha256:ae31dfff0af93b2c62b0098a039b38569c43b0a7e97b873000ca42d128f27350
|
||||
|
||||
hasht1 sha1:51d27384
|
||||
hasht1 sha256:ae31dfff
|
||||
|
||||
hash2 sha1:51d2738efb4ad8a1e40bed839ab8e116f0a15e47
|
||||
hash2 sha256:ae31dffada88a46fd5f53c7ed5aa25a7a8951f1d5e88456c317c8d5484d263e5
|
||||
|
||||
hasht2 sha1:51d2738e
|
||||
hasht2 sha256:ae31dffa
|
||||
EOF
|
||||
|
||||
cat >expect_initial <<-EOF &&
|
||||
100644 blob $(test_oid hash1) foo
|
||||
EOF
|
||||
|
||||
cat >expect_update <<-EOF &&
|
||||
100644 blob $(test_oid hash2) foo
|
||||
EOF
|
||||
|
||||
echo "$(test_oid val1)" > foo &&
|
||||
git add foo &&
|
||||
git commit -m "initial" &&
|
||||
git cat-file -p HEAD: > actual &&
|
||||
test_cmp expect_initial actual &&
|
||||
echo 11742 > foo &&
|
||||
echo "$(test_oid val2)" > foo &&
|
||||
git commit -a -m "update" &&
|
||||
git cat-file -p HEAD: > actual &&
|
||||
test_cmp expect_update actual
|
||||
'
|
||||
|
||||
cat >expect <<EOF
|
||||
index 51d27384..51d2738e 100644
|
||||
index $(test_oid hasht1)..$(test_oid hasht2) 100644
|
||||
EOF
|
||||
|
||||
test_expect_success 'diff does not produce ambiguous index line' '
|
||||
|
|
|
@ -70,7 +70,7 @@ check_raw () {
|
|||
expect=$1
|
||||
shift
|
||||
cat >expected <<-EOF
|
||||
:000000 100644 0000000000000000000000000000000000000000 $blob A $expect
|
||||
:000000 100644 $ZERO_OID $blob A $expect
|
||||
EOF
|
||||
test_expect_success "--raw $*" "
|
||||
git -C '$dir' diff --no-abbrev --raw $* HEAD^ >actual &&
|
||||
|
|
|
@ -9,24 +9,27 @@ test_expect_success 'setup binary merge conflict' '
|
|||
git commit -m one &&
|
||||
echo twoQ2 | q_to_nul >binary &&
|
||||
git commit -a -m two &&
|
||||
two=$(git rev-parse --short HEAD:binary) &&
|
||||
git checkout -b branch-binary HEAD^ &&
|
||||
echo threeQ3 | q_to_nul >binary &&
|
||||
git commit -a -m three &&
|
||||
three=$(git rev-parse --short HEAD:binary) &&
|
||||
test_must_fail git merge master &&
|
||||
echo resolvedQhooray | q_to_nul >binary &&
|
||||
git commit -a -m resolved
|
||||
git commit -a -m resolved &&
|
||||
res=$(git rev-parse --short HEAD:binary)
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --git a/binary b/binary
|
||||
index 7ea6ded..9563691 100644
|
||||
index $three..$res 100644
|
||||
Binary files a/binary and b/binary differ
|
||||
resolved
|
||||
|
||||
diff --git a/binary b/binary
|
||||
index 6197570..9563691 100644
|
||||
index $two..$res 100644
|
||||
Binary files a/binary and b/binary differ
|
||||
EOF
|
||||
test_expect_success 'diff -m indicates binary-ness' '
|
||||
|
@ -34,11 +37,11 @@ test_expect_success 'diff -m indicates binary-ness' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --combined binary
|
||||
index 7ea6ded,6197570..9563691
|
||||
index $three,$two..$res
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff -c indicates binary-ness' '
|
||||
|
@ -46,11 +49,11 @@ test_expect_success 'diff -c indicates binary-ness' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --cc binary
|
||||
index 7ea6ded,6197570..9563691
|
||||
index $three,$two..$res
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff --cc indicates binary-ness' '
|
||||
|
@ -62,23 +65,26 @@ test_expect_success 'setup non-binary with binary attribute' '
|
|||
git checkout master &&
|
||||
test_commit one text &&
|
||||
test_commit two text &&
|
||||
two=$(git rev-parse --short HEAD:text) &&
|
||||
git checkout -b branch-text HEAD^ &&
|
||||
test_commit three text &&
|
||||
three=$(git rev-parse --short HEAD:text) &&
|
||||
test_must_fail git merge master &&
|
||||
test_commit resolved text &&
|
||||
res=$(git rev-parse --short HEAD:text) &&
|
||||
echo text -diff >.gitattributes
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index 2bdf67a..2ab19ae 100644
|
||||
index $three..$res 100644
|
||||
Binary files a/text and b/text differ
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index f719efd..2ab19ae 100644
|
||||
index $two..$res 100644
|
||||
Binary files a/text and b/text differ
|
||||
EOF
|
||||
test_expect_success 'diff -m respects binary attribute' '
|
||||
|
@ -86,11 +92,11 @@ test_expect_success 'diff -m respects binary attribute' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
index $three,$two..$res
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff -c respects binary attribute' '
|
||||
|
@ -98,11 +104,11 @@ test_expect_success 'diff -c respects binary attribute' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
index $three,$two..$res
|
||||
Binary files differ
|
||||
EOF
|
||||
test_expect_success 'diff --cc respects binary attribute' '
|
||||
|
@ -115,11 +121,11 @@ test_expect_success 'setup textconv attribute' '
|
|||
git config diff.upcase.textconv "tr a-z A-Z <"
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index 2bdf67a..2ab19ae 100644
|
||||
index $three..$res 100644
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@ -1 +1 @@
|
||||
|
@ -128,7 +134,7 @@ index 2bdf67a..2ab19ae 100644
|
|||
resolved
|
||||
|
||||
diff --git a/text b/text
|
||||
index f719efd..2ab19ae 100644
|
||||
index $two..$res 100644
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@ -1 +1 @@
|
||||
|
@ -140,11 +146,11 @@ test_expect_success 'diff -m respects textconv attribute' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
index $three,$two..$res
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
|
@ -157,11 +163,11 @@ test_expect_success 'diff -c respects textconv attribute' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
resolved
|
||||
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
index $three,$two..$res
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
|
@ -174,9 +180,9 @@ test_expect_success 'diff --cc respects textconv attribute' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
diff --combined text
|
||||
index 2bdf67a,f719efd..2ab19ae
|
||||
index $three,$two..$res
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,1 @@@
|
||||
|
@ -190,9 +196,9 @@ test_expect_success 'diff-tree plumbing does not respect textconv' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<'EOF'
|
||||
cat >expect <<EOF
|
||||
diff --cc text
|
||||
index 2bdf67a,f719efd..0000000
|
||||
index $three,$two..0000000
|
||||
--- a/text
|
||||
+++ b/text
|
||||
@@@ -1,1 -1,1 +1,5 @@@
|
||||
|
|
Загрузка…
Ссылка в новой задаче