blob: 074568500a357d3bae69a953aa59155687483a10 [file] [log] [blame]
Jeff King50753d02008-03-08 20:27:04 -08001#!/bin/sh
2
3test_description='read-tree -u --reset'
4
5. ./test-lib.sh
Jens Lehmannea5070c2011-05-25 22:10:41 +02006. "$TEST_DIRECTORY"/lib-read-tree.sh
Jeff King50753d02008-03-08 20:27:04 -08007
8# two-tree test
9
10test_expect_success 'setup' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070011 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
Jeff King50753d02008-03-08 20:27:04 -080023'
24
Linus Torvalds34110cd2008-03-06 18:12:28 -080025test_expect_success 'reset should work' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070026 read_tree_u_must_succeed -u --reset HEAD^ &&
27 git ls-files >actual &&
28 test_cmp expect actual
Jeff King50753d02008-03-08 20:27:04 -080029'
30
Junio C Hamanod1a43f22008-10-15 16:00:06 -070031test_expect_success 'reset should remove remnants from a failed merge' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070032 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
Junio C Hamanod1a43f22008-10-15 16:00:06 -070044'
45
Junio C Hamano77b43ca2013-11-01 15:04:08 -070046test_expect_success 'two-way reset should remove remnants too' '
47 read_tree_u_must_succeed --reset -u HEAD &&
48 git ls-files -s >expect &&
49 sha1=$(git rev-parse :new) &&
50 (
51 echo "100644 $sha1 1 old"
52 echo "100644 $sha1 3 old"
53 ) | git update-index --index-info &&
54 >old &&
55 git ls-files -s &&
56 read_tree_u_must_succeed --reset -u HEAD HEAD &&
57 git ls-files -s >actual &&
58 ! test -f old
59'
60
Junio C Hamanod1a43f22008-10-15 16:00:06 -070061test_expect_success 'Porcelain reset should remove remnants too' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070062 read_tree_u_must_succeed --reset -u HEAD &&
63 git ls-files -s >expect &&
64 sha1=$(git rev-parse :new) &&
65 (
66 echo "100644 $sha1 1 old"
67 echo "100644 $sha1 3 old"
68 ) | git update-index --index-info &&
69 >old &&
70 git ls-files -s &&
71 git reset --hard &&
72 git ls-files -s >actual &&
73 ! test -f old
Junio C Hamanod1a43f22008-10-15 16:00:06 -070074'
75
76test_expect_success 'Porcelain checkout -f should remove remnants too' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070077 read_tree_u_must_succeed --reset -u HEAD &&
78 git ls-files -s >expect &&
79 sha1=$(git rev-parse :new) &&
80 (
81 echo "100644 $sha1 1 old"
82 echo "100644 $sha1 3 old"
83 ) | git update-index --index-info &&
84 >old &&
85 git ls-files -s &&
86 git checkout -f &&
87 git ls-files -s >actual &&
88 ! test -f old
Junio C Hamanod1a43f22008-10-15 16:00:06 -070089'
90
91test_expect_success 'Porcelain checkout -f HEAD should remove remnants too' '
Junio C Hamano76da5b12013-11-01 14:55:17 -070092 read_tree_u_must_succeed --reset -u HEAD &&
93 git ls-files -s >expect &&
94 sha1=$(git rev-parse :new) &&
95 (
96 echo "100644 $sha1 1 old"
97 echo "100644 $sha1 3 old"
98 ) | git update-index --index-info &&
99 >old &&
100 git ls-files -s &&
101 git checkout -f HEAD &&
102 git ls-files -s >actual &&
103 ! test -f old
Junio C Hamanod1a43f22008-10-15 16:00:06 -0700104'
105
Jeff King50753d02008-03-08 20:27:04 -0800106test_done