Skip to content

Commit

Permalink
cherry-pick: allow "-" as abbreviation of '@{-1}'
Browse files Browse the repository at this point in the history
"-" abbreviation is handy for "cherry-pick" like "checkout" and "merge".

It's also good for uniformity that a "-" stands as
the name of the previous branch where a branch name is
accepted and it could not mean any other things like stdin.

Signed-off-by: Hiroshige Umino <hiroshige88@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Hiroshige Umino authored and Junio C Hamano committed Sep 9, 2013
1 parent e5be297 commit 182d7dc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
2 changes: 2 additions & 0 deletions builtin/revert.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@ int cmd_cherry_pick(int argc, const char **argv, const char *prefix)
memset(&opts, 0, sizeof(opts));
opts.action = REPLAY_PICK;
git_config(git_default_config, NULL);
if (!strcmp(argv[1], "-"))
argv[1] = "@{-1}";
parse_args(argc, argv, &opts);
res = sequencer_pick_revisions(&opts);
if (res < 0)
Expand Down
20 changes: 20 additions & 0 deletions t/t3501-revert-cherry-pick.sh
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,24 @@ test_expect_success 'chery-pick on unborn branch' '
! test_cmp_rev initial HEAD
'

test_expect_success 'cherry-pick "-" to pick from previous branch' '
git checkout unborn &&
test_commit to-pick actual content &&
git checkout master &&
git cherry-pick - &&
echo content >expect &&
test_cmp expect actual
'

test_expect_success 'cherry-pick "-" is meaningless without checkout' '
test_create_repo afresh &&
(
cd afresh &&
test_commit one &&
test_commit two &&
test_commit three &&
test_must_fail git cherry-pick -
)
'

test_done

0 comments on commit 182d7dc

Please sign in to comment.