Skip to content

Commit

Permalink
Show error for 'git merge' with unset merge.defaultToUpstream
Browse files Browse the repository at this point in the history
'git merge' can be called without any arguments if merge.defaultToUpstream
is set. However, when merge.defaultToUpstream is not set, the user will be
presented the usage information as if he entered a command with a wrong
syntaxis. Ironically, the usage information confirms that no arguments are
mandatory.

This adds a proper error message telling the user why the command failed. As
a side-effect this can help the user in discovering the possibility to merge
with the upstream branch by setting merge.defaultToUpstream.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Vincent van Ravesteijn authored and Junio C Hamano committed Nov 21, 2011
1 parent bd5bce7 commit 5480207
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -1094,9 +1094,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
die(_("You cannot combine --no-ff with --ff-only."));

if (!abort_current_merge) {
if (!argc && default_to_upstream)
argc = setup_with_upstream(&argv);
else if (argc == 1 && !strcmp(argv[0], "-"))
if (!argc) {
if (default_to_upstream)
argc = setup_with_upstream(&argv);
else
die(_("No commit specified and merge.defaultToUpstream not set."));
} else if (argc == 1 && !strcmp(argv[0], "-"))
argv[0] = "@{-1}";
}
if (!argc)
Expand Down

0 comments on commit 5480207

Please sign in to comment.