]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'bc/hash-independent-tests-part-6'
authorJunio C Hamano <gitster@pobox.com>
Sun, 10 Nov 2019 09:02:17 +0000 (18:02 +0900)
committerJunio C Hamano <gitster@pobox.com>
Sun, 10 Nov 2019 09:02:17 +0000 (18:02 +0900)
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

16 files changed:
Documentation/git-rev-parse.txt
builtin/rev-parse.c
t/oid-info/hash-info
t/t1305-config-include.sh
t/t1500-rev-parse.sh
t/t3429-rebase-edit-todo.sh
t/t4010-diff-pathspec.sh
t/t4011-diff-symlink.sh
t/t4015-diff-whitespace.sh
t/t4027-diff-submodule.sh
t/t4034-diff-words.sh
t/t4038-diff-combined.sh
t/t4039-diff-assume-unchanged.sh
t/t4044-diff-index-unique-abbrev.sh
t/t4045-diff-relative.sh
t/t4048-diff-combined-binary.sh

index e72d332b8316763d40e7bcfe0e32bcaa61842cf8..9985477efe9c3e7defb639fa30517d0ea93eb7b6 100644 (file)
@@ -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
 ~~~~~~~~~~~~~
 
index 308c67e4fc668ec59343bbaba210b505c90a9e2c..85ce2095bf21cb386dd9577823139da01f0d0967 100644 (file)
@@ -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;
index ccdbfdf9743d6adab98bd7b33c55a1b35523eaa7..d0736dd1a00d59cb1774860568136e94f8d23f04 100644 (file)
@@ -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
index d20b4d150d42c9fd6c14eb5f36e01a442d045cee..f1e1b289f989ea94e92b1eaf2ac1009df741deb6 100755 (executable)
@@ -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
 '
 
index 01abee533dedfd1e2d8bd347d06fc5c0c8b7833a..0177fd815c03d9f3dafeb99e3e915bd89ba714c2 100755 (executable)
@@ -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 &&
index 8739cb60a77a61f6a6a2e08ebb4ae64c92bafb67..aaeac6eade8e13f4ebd9ff40346d4a42fe2cd0b1 100755 (executable)
@@ -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 &&
index 281f8fad0c71687aecec7479328ce8609cda5c83..e5ca359edfa6087f5833c2e77324b7f9960d06cb 100755 (executable)
@@ -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' \
index 5ae19b987d65d081b78c10f5eefd8aaf930c97a8..717034bb50b57f3edc5d19989f0b178e912e08e6 100755 (executable)
@@ -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 @@
index 6b087df3dcbd01df9c7e533f9e039518beaa773a..eadaf57262637297029040bea4370cc0c407514d 100755 (executable)
@@ -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>
index 9aa8e2b39b45a6c2b5ec48a9d98b94831edb2caa..e29deaf4a509523b00e6bf9ac5d2436957a1b022 100755 (executable)
@@ -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
index 9a93c2a3e0dd8a4763092549df77172657009c56..fb145aa173ee4ea4c79bcb01336c433e16fa81e5 100755 (executable)
@@ -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
 '
 
index b9d876efa20469ae4cce824f9fd5924e13c936a1..b5a56895e8e8368996c8c7f9314b4bf93fddd234 100755 (executable)
@@ -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
 '
index 53ac44b0f0036803b48979c3c5f343ca02b1b80a..0eb0314a8b35daecd3a442592bac4de1c480ffe0 100755 (executable)
@@ -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' '
index 647905e01fb963efce34cd30b351a31a671cbb5e..4701796d10e1028debe4581f2fa10038b38be003 100755 (executable)
@@ -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
+test_expect_success 'setup' '
+       test_oid_cache <<-EOF &&
+       val1 sha1:4827
+       val1 sha256:5664
 
-cat >expect_update <<EOF
-100644 blob 51d2738efb4ad8a1e40bed839ab8e116f0a15e47   foo
-EOF
+       val2 sha1:11742
+       val2 sha256:10625
 
-test_expect_success 'setup' '
-       echo 4827 > foo &&
+       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' '
index 36f8ed8a818714abc234ca940a59693f4be21046..258808708e1093819a32e68dfc76b6faf506f388 100755 (executable)
@@ -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 &&
index 87a8949500bbfb450624de27f17f1300761cf20e..7f9ad9fa3d1f97b9aeedbb0c1d351be5749837ee 100755 (executable)
@@ -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 @@@