summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorSven Strickroth <sven@cs-ware.de>2016-03-21 22:29:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-03-21 22:32:24 (GMT)
commitb64c1e0718f4a54d75b8faf0421471faa531af68 (patch)
tree6f8db8e995f8e37bb773834f0d9f96d1fd7621ba /builtin
parentf932729cc7707390f4d6739be1573e93ceb9df22 (diff)
downloadgit-b64c1e0718f4a54d75b8faf0421471faa531af68.zip
git-b64c1e0718f4a54d75b8faf0421471faa531af68.tar.gz
git-b64c1e0718f4a54d75b8faf0421471faa531af68.tar.bz2
commit: do not lose SQUASH_MSG contents
When concluding a conflicted "git merge --squash", the command failed to read SQUASH_MSG that was prepared by "git merge", and showed only the "# Conflicts:" list of conflicted paths. Place the contents from SQUASH_MSG at the beginning, just like we show the commit log skeleton first when concluding a normal merge, and then show the "# Conflicts:" list, to help the user write the log message for the resulting commit. Test by Junio C Hamano <gitster@pobox.com>. Signed-off-by: Sven Strickroth <sven@cs-ware.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/commit.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index 4cbd5ff..6163972 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -726,9 +726,18 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
&sb, &ctx);
hook_arg1 = "message";
} else if (!stat(git_path_merge_msg(), &statbuf)) {
+ /*
+ * prepend SQUASH_MSG here if it exists and a
+ * "merge --squash" was originally performed
+ */
+ if (!stat(git_path_squash_msg(), &statbuf)) {
+ if (strbuf_read_file(&sb, git_path_squash_msg(), 0) < 0)
+ die_errno(_("could not read SQUASH_MSG"));
+ hook_arg1 = "squash";
+ } else
+ hook_arg1 = "merge";
if (strbuf_read_file(&sb, git_path_merge_msg(), 0) < 0)
die_errno(_("could not read MERGE_MSG"));
- hook_arg1 = "merge";
} else if (!stat(git_path_squash_msg(), &statbuf)) {
if (strbuf_read_file(&sb, git_path_squash_msg(), 0) < 0)
die_errno(_("could not read SQUASH_MSG"));