blob 5495eacfec11a904ba24d69439cb1b98b5a353ec 2528 bytes (raw)
name: t/t3502-cherry-pick-merge.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
123
124
125
126
127
128
129
130
131
132
133
134
135
| | #!/bin/sh
test_description='cherry picking and reverting a merge
b---c
/ /
initial---a
'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
test_expect_success setup '
>A &&
>B &&
git add A B &&
git commit -m "Initial" &&
git tag initial &&
git branch side &&
echo new line >A &&
git commit -m "add line to A" A &&
git tag a &&
git checkout side &&
echo new line >B &&
git commit -m "add line to B" B &&
git tag b &&
git checkout main &&
git merge side &&
git tag c
'
test_expect_success 'cherry-pick -m complains of bogus numbers' '
# expect 129 here to distinguish between cases where
# there was nothing to cherry-pick
test_expect_code 129 git cherry-pick -m &&
test_expect_code 129 git cherry-pick -m foo b &&
test_expect_code 129 git cherry-pick -m -1 b &&
test_expect_code 129 git cherry-pick -m 0 b
'
test_expect_success 'cherry-pick explicit first parent of a non-merge' '
git reset --hard &&
git checkout a^0 &&
git cherry-pick -m 1 b &&
git diff --exit-code c --
'
test_expect_success 'cherry pick a merge without -m should fail' '
git reset --hard &&
git checkout a^0 &&
test_must_fail git cherry-pick c &&
git diff --exit-code a --
'
test_expect_success 'cherry pick a merge (1)' '
git reset --hard &&
git checkout a^0 &&
git cherry-pick -m 1 c &&
git diff --exit-code c
'
test_expect_success 'cherry pick a merge (2)' '
git reset --hard &&
git checkout b^0 &&
git cherry-pick -m 2 c &&
git diff --exit-code c
'
test_expect_success 'cherry pick a merge relative to nonexistent parent should fail' '
git reset --hard &&
git checkout b^0 &&
test_must_fail git cherry-pick -m 3 c
'
test_expect_success 'revert explicit first parent of a non-merge' '
git reset --hard &&
git checkout c^0 &&
git revert -m 1 b &&
git diff --exit-code a --
'
test_expect_success 'revert a merge without -m should fail' '
git reset --hard &&
git checkout c^0 &&
test_must_fail git revert c &&
git diff --exit-code c
'
test_expect_success 'revert a merge (1)' '
git reset --hard &&
git checkout c^0 &&
git revert -m 1 c &&
git diff --exit-code a --
'
test_expect_success 'revert a merge (2)' '
git reset --hard &&
git checkout c^0 &&
git revert -m 2 c &&
git diff --exit-code b --
'
test_expect_success 'revert a merge relative to nonexistent parent should fail' '
git reset --hard &&
git checkout c^0 &&
test_must_fail git revert -m 3 c &&
git diff --exit-code c
'
test_done
|
debug log:
solving 5495eacfec1 ...
found 5495eacfec1 in https://80x24.org/mirrors/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.^
Code repositories for project(s) associated with this public 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).