From 1255a9ac0c424d5fbf13ce166a8b0eef000e24e6 Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Sun, 26 Feb 2017 13:34:13 +0000 Subject: [PATCH] Fix: make reflog include "(merge)" for merge commits This fixes issue #4094 --- src/refs.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/refs.c b/src/refs.c index 70f5519c6..0837dc4a8 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1130,6 +1130,18 @@ int git_reference__update_terminal( return error; } +static const char *commit_type(const git_commit *commit) +{ + unsigned int count = git_commit_parentcount(commit); + + if (count >= 2) + return " (merge)"; + else if (count == 0) + return " (initial)"; + else + return ""; +} + int git_reference__update_for_commit( git_repository *repo, git_reference *ref, @@ -1146,7 +1158,7 @@ int git_reference__update_for_commit( if ((error = git_commit_lookup(&commit, repo, id)) < 0 || (error = git_buf_printf(&reflog_msg, "%s%s: %s", operation ? operation : "commit", - git_commit_parentcount(commit) == 0 ? " (initial)" : "", + commit_type(commit), git_commit_summary(commit))) < 0) goto done;