Git Mailing List Archive mirror
 help / color / mirror / Atom feed
blob 01b7c3503ca882cd292f2eef252a977ac5dcc183 2559 bytes (raw)
name: t/t7111-reset-table.sh 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 
#!/bin/sh
#
# Copyright (c) 2010 Christian Couder
#

test_description='Tests to check that "reset" options follow a known table'

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh


test_expect_success 'creating initial commits' '
	test_commit E file1 &&
	test_commit D file1 &&
	test_commit C file1
'

while read W1 I1 H1 T opt W2 I2 H2
do
    test_expect_success "check: $W1 $I1 $H1 $T --$opt $W2 $I2 $H2" '
	git reset --hard C &&
	if test "$I1" != "$H1"
	then
	    echo "$I1" >file1 &&
	    git add file1
	fi &&
	if test "$W1" != "$I1"
	then
	    echo "$W1" >file1
	fi &&
	if test "$W2" != "XXXXX"
	then
	    git reset --$opt $T &&
	    test "$(cat file1)" = "$W2" &&
	    git checkout-index -f -- file1 &&
	    test "$(cat file1)" = "$I2" &&
	    git checkout -f HEAD -- file1 &&
	    test "$(cat file1)" = "$H2"
	else
	    test_must_fail git reset --$opt $T
	fi
    '
done <<\EOF
A B C D soft   A B D
A B C D mixed  A D D
A B C D hard   D D D
A B C D merge  XXXXX
A B C D keep   XXXXX
A B C C soft   A B C
A B C C mixed  A C C
A B C C hard   C C C
A B C C merge  XXXXX
A B C C keep   A C C
B B C D soft   B B D
B B C D mixed  B D D
B B C D hard   D D D
B B C D merge  D D D
B B C D keep   XXXXX
B B C C soft   B B C
B B C C mixed  B C C
B B C C hard   C C C
B B C C merge  C C C
B B C C keep   B C C
B C C D soft   B C D
B C C D mixed  B D D
B C C D hard   D D D
B C C D merge  XXXXX
B C C D keep   XXXXX
B C C C soft   B C C
B C C C mixed  B C C
B C C C hard   C C C
B C C C merge  B C C
B C C C keep   B C C
EOF

test_expect_success 'setting up branches to test with unmerged entries' '
	git reset --hard C &&
	git branch branch1 &&
	git branch branch2 &&
	git checkout branch1 &&
	test_commit B1 file1 &&
	git checkout branch2 &&
	test_commit B file1
'

while read W1 I1 H1 T opt W2 I2 H2
do
    test_expect_success "check: $W1 $I1 $H1 $T --$opt $W2 $I2 $H2" '
	git reset --hard B &&
	test_must_fail git merge branch1 &&
	cat file1 >X_file1 &&
	if test "$W2" != "XXXXX"
	then
	    git reset --$opt $T &&
	    if test "$W2" = "X"
	    then
		test_cmp file1 X_file1
	    else
		test "$(cat file1)" = "$W2"
	    fi &&
	    git checkout-index -f -- file1 &&
	    test "$(cat file1)" = "$I2" &&
	    git checkout -f HEAD -- file1 &&
	    test "$(cat file1)" = "$H2"
	else
	    test_must_fail git reset --$opt $T
	fi
    '
done <<\EOF
X U B C soft   XXXXX
X U B C mixed  X C C
X U B C hard   C C C
X U B C merge  C C C
X U B C keep   XXXXX
X U B B soft   XXXXX
X U B B mixed  X B B
X U B B hard   B B B
X U B B merge  B B B
X U B B keep   XXXXX
EOF

test_done

debug log:

solving 01b7c3503ca ...
found 01b7c3503ca in https://80x24.org/lore/pub/scm/git/git.git/

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).