From 7f9acb2a16473e5ba6d44231d2fc844ca8bb9817 Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Fri, 26 Jan 2007 15:09:02 -0800
Subject: [PATCH] git-merge: leave sensible reflog message when used as the
 first level UI.

It used to throw potentially multi-line log message at reflog.
Just record the heads that were given to be merged at the command
line and the action.

Revert the removal of the check in "git-update-ref -m" I made earlier
which was only a work-around for this.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 builtin-update-ref.c | 2 ++
 git-merge.sh         | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/builtin-update-ref.c b/builtin-update-ref.c
index f2506fa9762..b34e5987dd2 100644
--- a/builtin-update-ref.c
+++ b/builtin-update-ref.c
@@ -23,6 +23,8 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
 			msg = argv[++i];
 			if (!*msg)
 				die("Refusing to perform update with empty message.");
+			if (strchr(msg, '\n'))
+				die("Refusing to perform update with \\n in message.");
 			continue;
 		}
 		if (!strcmp("-d", argv[i])) {
diff --git a/git-merge.sh b/git-merge.sh
index 7b590268edb..656869101a8 100755
--- a/git-merge.sh
+++ b/git-merge.sh
@@ -7,7 +7,6 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commi
 
 SUBDIRECTORY_OK=Yes
 . git-sh-setup
-set_reflog_action "merge $*"
 require_work_tree
 cd_to_toplevel
 
@@ -217,6 +216,7 @@ head=$(git-rev-parse --verify "$head_arg"^0) || usage
 
 # All the rest are remote heads
 test "$#" = 0 && usage ;# we need at least one remote head.
+set_reflog_action "merge $*"
 
 remoteheads=
 for remote