Skip to content

Commit f2c1b01

Browse files
committed
Merge branch 'hu/cherry-pick-previous-branch'
"git cherry-pick" without further options would segfault. Could use a follow-up to handle '-' after argv[1] better. * hu/cherry-pick-previous-branch: cherry-pick: handle "-" after parsing options
2 parents 4197361 + d644c55 commit f2c1b01

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

builtin/revert.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ static void parse_args(int argc, const char **argv, struct replay_opts *opts)
168168
opts->revs->no_walk = REVISION_WALK_NO_WALK_UNSORTED;
169169
if (argc < 2)
170170
usage_with_options(usage_str, options);
171+
if (!strcmp(argv[1], "-"))
172+
argv[1] = "@{-1}";
171173
memset(&s_r_opt, 0, sizeof(s_r_opt));
172174
s_r_opt.assume_dashdash = 1;
173175
argc = setup_revisions(argc, argv, opts->revs, &s_r_opt);
@@ -202,8 +204,6 @@ int cmd_cherry_pick(int argc, const char **argv, const char *prefix)
202204
memset(&opts, 0, sizeof(opts));
203205
opts.action = REPLAY_PICK;
204206
git_config(git_default_config, NULL);
205-
if (!strcmp(argv[1], "-"))
206-
argv[1] = "@{-1}";
207207
parse_args(argc, argv, &opts);
208208
res = sequencer_pick_revisions(&opts);
209209
if (res < 0)

t/t3501-revert-cherry-pick.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,16 @@ test_expect_success 'cherry-pick "-" is meaningless without checkout' '
129129
)
130130
'
131131

132+
test_expect_success 'cherry-pick "-" works with arguments' '
133+
git checkout -b side-branch &&
134+
test_commit change actual change &&
135+
git checkout master &&
136+
git cherry-pick -s - &&
137+
echo "Signed-off-by: C O Mitter <[email protected]>" >expect &&
138+
git cat-file commit HEAD | grep ^Signed-off-by: >signoff &&
139+
test_cmp expect signoff &&
140+
echo change >expect &&
141+
test_cmp expect actual
142+
'
143+
132144
test_done

0 commit comments

Comments
 (0)