diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-04-07 15:57:57 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-04-07 15:57:57 -0700 |
commit | 4e8115fff135a09f75020083f51722e7e35eb6e9 (patch) | |
tree | bf18c33fdae0c043d1918cc93c7042e06e095140 /builtin | |
parent | c3f6163b0b6e2cfae1422050c9607db1130cded0 (diff) | |
download | git-4e8115fff135a09f75020083f51722e7e35eb6e9.tar.gz |
merge: allow "-" as a short-hand for "previous branch"
Just like "git checkout -" is a short-hand for "git checkout @{-1}" to
conveniently switch back to the previous branch, "git merge -" is a
short-hand for "git merge @{-1}" to conveniently merge the previous branch.
It will allow me to say:
$ git checkout -b au/topic
$ git am -s ./+au-topic.mbox
$ git checkout pu
$ git merge -
which is an extremely typical and repetitive operation during my git day.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/merge.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index d54e7ddbb1..0bdd19a137 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1062,9 +1062,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix) if (!allow_fast_forward && fast_forward_only) die(_("You cannot combine --no-ff with --ff-only.")); - if (!argc && !abort_current_merge && default_to_upstream) - argc = setup_with_upstream(&argv); - + if (!abort_current_merge) { + if (!argc && default_to_upstream) + argc = setup_with_upstream(&argv); + else if (argc == 1 && !strcmp(argv[0], "-")) + argv[0] = "@{-1}"; + } if (!argc) usage_with_options(builtin_merge_usage, builtin_merge_options); |