git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
7a126337ca9e9e00aa5c7834fde4757b81cfd3ee blob 3651 bytes (raw)

  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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
 
#!/bin/sh

test_description='checkout can switch to last branch and merge base'

. ./test-lib.sh

test_expect_success 'setup' '
	echo hello >world &&
	git add world &&
	git commit -m initial &&
	git branch other &&
	echo "hello again" >>world &&
	git add world &&
	git commit -m second
'

test_expect_success '"checkout -" does not work initially' '
	test_must_fail git checkout -
'

test_expect_success 'first branch switch' '
	git checkout other
'

test_expect_success '"checkout -" switches back' '
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
'

test_expect_success '"checkout -" switches forth' '
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
'

test_expect_success 'detach HEAD' '
	git checkout $(git rev-parse HEAD)
'

test_expect_success '"checkout -" attaches again' '
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
'

test_expect_success '"checkout -" detaches again' '
	git checkout - &&
	test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" &&
	test_must_fail git symbolic-ref HEAD
'

test_expect_success 'more switches' '
	for i in 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
	do
		git checkout -b branch$i
	done
'

more_switches () {
	for i in 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
	do
		git checkout branch$i
	done
}

test_expect_success 'switch to the last' '
	more_switches &&
	git checkout @{-1} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch2"
'

test_expect_success 'switch to second from the last' '
	more_switches &&
	git checkout @{-2} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch3"
'

test_expect_success 'switch to third from the last' '
	more_switches &&
	git checkout @{-3} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch4"
'

test_expect_success 'switch to fourth from the last' '
	more_switches &&
	git checkout @{-4} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch5"
'

test_expect_success 'switch to twelfth from the last' '
	more_switches &&
	git checkout @{-12} &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch13"
'

test_expect_success 'merge base test setup' '
	git checkout -b another other &&
	echo "hello again" >>world &&
	git add world &&
	git commit -m third
'

test_expect_success 'another...main' '
	git checkout another &&
	git checkout another...main &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
'

test_expect_success '...main' '
	git checkout another &&
	git checkout ...main &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
'

test_expect_success 'main...' '
	git checkout another &&
	git checkout main... &&
	test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify main^)"
'

test_expect_success '"checkout -" works after a rebase A' '
	git checkout main &&
	git checkout other &&
	git rebase main &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
'

test_expect_success '"checkout -" works after a rebase A B' '
	git branch moodle main~1 &&
	git checkout main &&
	git checkout other &&
	git rebase main moodle &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
'

test_expect_success '"checkout -" works after a rebase -i A' '
	git checkout main &&
	git checkout other &&
	git rebase -i main &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
'

test_expect_success '"checkout -" works after a rebase -i A B' '
	git branch foodle main~1 &&
	git checkout main &&
	git checkout other &&
	git rebase main foodle &&
	git checkout - &&
	test "z$(git symbolic-ref HEAD)" = "zrefs/heads/main"
'

test_done
debug log:

solving 7a126337ca ...
found 7a126337ca in https://public-inbox.org/git/9b368b1ce1c5462b1a6fda6755837806bf4edfa8.1605221039.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/0d4f1275f745f90a1ea007dfc82510f0040ab4a0.1605629548.git.gitgitgadget@gmail.com/
found e7ba8c505f in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100755 e7ba8c505f579ab5cd53ee713eaf6ca894e471a1	t/t2012-checkout-last.sh

applying [1/2] https://public-inbox.org/git/9b368b1ce1c5462b1a6fda6755837806bf4edfa8.1605221039.git.gitgitgadget@gmail.com/
diff --git a/t/t2012-checkout-last.sh b/t/t2012-checkout-last.sh
index e7ba8c505f..7a126337ca 100755

Checking patch t/t2012-checkout-last.sh...
Applied patch t/t2012-checkout-last.sh cleanly.

skipping https://public-inbox.org/git/0d4f1275f745f90a1ea007dfc82510f0040ab4a0.1605629548.git.gitgitgadget@gmail.com/ for 7a126337ca
index at:
100755 7a126337ca9e9e00aa5c7834fde4757b81cfd3ee	t/t2012-checkout-last.sh

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

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).