diff --git a/commit.c b/commit.c index 97205bfb2c..67e11d7a4f 100644 --- a/commit.c +++ b/commit.c @@ -438,13 +438,13 @@ static int add_merge_info(enum cmit_fmt fmt, char *buf, const struct commit *com while (parent) { struct commit *p = parent->item; + const char *hex = abbrev + ? find_unique_abbrev(p->object.sha1, abbrev) + : sha1_to_hex(p->object.sha1); + char *dots = (abbrev && strlen(hex) != 40) ? "..." : ""; parent = parent->next; - offset += sprintf(buf + offset, - abbrev ? " %s..." : " %s", - abbrev - ? find_unique_abbrev(p->object.sha1, abbrev) - : sha1_to_hex(p->object.sha1)); + offset += sprintf(buf + offset, " %s%s", hex, dots); } buf[offset++] = '\n'; return offset;