Git fork
at reftables-rust 111 lines 2.6 kB view raw
1#!/bin/sh 2 3test_description='read-tree -u --reset' 4 5. ./test-lib.sh 6. "$TEST_DIRECTORY"/lib-read-tree.sh 7 8# two-tree test 9 10test_expect_success 'setup' ' 11 git init && 12 mkdir df && 13 echo content >df/file && 14 git add df/file && 15 git commit -m one && 16 git ls-files >expect && 17 rm -rf df && 18 echo content >df && 19 git add df && 20 echo content >new && 21 git add new && 22 git commit -m two 23' 24 25test_expect_success 'reset should work' ' 26 read_tree_u_must_succeed -u --reset HEAD^ && 27 git ls-files >actual && 28 test_cmp expect actual 29' 30 31test_expect_success 'reset should remove remnants from a failed merge' ' 32 read_tree_u_must_succeed --reset -u HEAD && 33 git ls-files -s >expect && 34 sha1=$(git rev-parse :new) && 35 ( 36 echo "100644 $sha1 1 old" && 37 echo "100644 $sha1 3 old" 38 ) | git update-index --index-info && 39 >old && 40 git ls-files -s && 41 read_tree_u_must_succeed --reset -u HEAD && 42 git ls-files -s >actual && 43 ! test -f old && 44 test_cmp expect actual 45' 46 47test_expect_success 'two-way reset should remove remnants too' ' 48 read_tree_u_must_succeed --reset -u HEAD && 49 git ls-files -s >expect && 50 sha1=$(git rev-parse :new) && 51 ( 52 echo "100644 $sha1 1 old" && 53 echo "100644 $sha1 3 old" 54 ) | git update-index --index-info && 55 >old && 56 git ls-files -s && 57 read_tree_u_must_succeed --reset -u HEAD HEAD && 58 git ls-files -s >actual && 59 ! test -f old && 60 test_cmp expect actual 61' 62 63test_expect_success 'Porcelain reset should remove remnants too' ' 64 read_tree_u_must_succeed --reset -u HEAD && 65 git ls-files -s >expect && 66 sha1=$(git rev-parse :new) && 67 ( 68 echo "100644 $sha1 1 old" && 69 echo "100644 $sha1 3 old" 70 ) | git update-index --index-info && 71 >old && 72 git ls-files -s && 73 git reset --hard && 74 git ls-files -s >actual && 75 ! test -f old && 76 test_cmp expect actual 77' 78 79test_expect_success 'Porcelain checkout -f should remove remnants too' ' 80 read_tree_u_must_succeed --reset -u HEAD && 81 git ls-files -s >expect && 82 sha1=$(git rev-parse :new) && 83 ( 84 echo "100644 $sha1 1 old" && 85 echo "100644 $sha1 3 old" 86 ) | git update-index --index-info && 87 >old && 88 git ls-files -s && 89 git checkout -f && 90 git ls-files -s >actual && 91 ! test -f old && 92 test_cmp expect actual 93' 94 95test_expect_success 'Porcelain checkout -f HEAD should remove remnants too' ' 96 read_tree_u_must_succeed --reset -u HEAD && 97 git ls-files -s >expect && 98 sha1=$(git rev-parse :new) && 99 ( 100 echo "100644 $sha1 1 old" && 101 echo "100644 $sha1 3 old" 102 ) | git update-index --index-info && 103 >old && 104 git ls-files -s && 105 git checkout -f HEAD && 106 git ls-files -s >actual && 107 ! test -f old && 108 test_cmp expect actual 109' 110 111test_done