From: Junio C Hamano Date: Thu, 7 Apr 2011 22:57:57 +0000 (-0700) Subject: merge: allow "-" as a short-hand for "previous branch" X-Git-Tag: v1.7.6-rc0~145^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4e8115fff135a09f75020083f51722e7e35eb6e9;p=git.git 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 --- diff --git a/builtin/merge.c b/builtin/merge.c index d54e7ddbb..0bdd19a13 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);