merge script: handle -m --log correctly
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 17 Aug 2010 07:06:56 +0000 (02:06 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Aug 2010 21:02:05 +0000 (14:02 -0700)
Based on v1.7.1.1~23^2 (merge: --log appends shortlog to message if
specified, 2010-05-11).  Without this change, the scripted
(non-builtin) merge does not pass t7604.

Cc: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/examples/git-merge.sh

index bab3da9eec933c26d8f6cd983f8a9742bad42042..91e33a3f0368f35274f43ca7eebc1b0cf557be27 100755 (executable)
@@ -294,12 +294,18 @@ else
        # the given message.  If remote is invalid we will die
        # later in the common codepath so we discard the error
        # in this loop.
-       merge_name=$(for remote
+       merge_msg="$(
+               for remote
                do
                        merge_name "$remote"
-               done | git fmt-merge-msg $log_arg
-       )
-       merge_msg="${merge_msg:+$merge_msg$LF$LF}$merge_name"
+               done |
+               if test "$have_message" = t
+               then
+                       git fmt-merge-msg -m "$merge_msg" $log_arg
+               else
+                       git fmt-merge-msg $log_arg
+               fi
+       )"
 fi
 head=$(git rev-parse --verify "$head_arg"^0) || usage