threads / patch / 28992

patchShow error for 'git merge' with unset merge.defaultToUpstream

Subject: [PATCH] Show error for 'git merge' with unset merge.defaultToUpstream

## tl;dr

2 messages between Nov 21, 2011 and Nov 21, 2011. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Vincent van Ravesteijn· Nov 21, 2011, 13:30 UTC · lore

'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>
---
 builtin/merge.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
Show changes to builtin/merge.c +6 −3
diff --git a/builtin/merge.c b/builtin/merge.c
index dffd5ec..900a297 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -1160,9 +1160,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)
-- 
1.7.4.1

← back to recent threads