Show error for 'git merge' with unset merge.defaultToUpstream
'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>
Vincent van Ravesteijn committed
Nov 21, 2011 at 14:30 UTC
5480207c4ee395fbb82682bc2065c93a43e24328
1 file changed
+6
-3
builtin/merge.c
+6
-3
@@ -1094,9 +1094,12 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
1094
die(_("You cannot combine --no-ff with --ff-only."));
1095
1096
if (!abort_current_merge) {
1097
- if (!argc && default_to_upstream)
1098
- argc = setup_with_upstream(&argv);
1099
- else if (argc == 1 && !strcmp(argv[0], "-"))
1097
+ if (!argc) {
1098
+ if (default_to_upstream)
1099
+ argc = setup_with_upstream(&argv);
1100
+ else
1101
+ die(_("No commit specified and merge.defaultToUpstream not set."));
1102
+ } else if (argc == 1 && !strcmp(argv[0], "-"))
1103
argv[0] = "@{-1}";
1104
}
1105
if (!argc)