diff options
author | Sven Strickroth <sven@cs-ware.de> | 2016-03-21 23:29:40 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-03-21 15:32:24 -0700 |
commit | b64c1e0718f4a54d75b8faf0421471faa531af68 (patch) | |
tree | 6f8db8e995f8e37bb773834f0d9f96d1fd7621ba /builtin | |
parent | f932729cc7707390f4d6739be1573e93ceb9df22 (diff) | |
download | git-b64c1e0718f4a54d75b8faf0421471faa531af68.tar.gz git-b64c1e0718f4a54d75b8faf0421471faa531af68.tar.xz |
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.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/builtin/commit.c b/builtin/commit.c index 4cbd5ff4d..6163972b8 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")); |