X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=log-tree.c;h=6ce239d8f92837ccce7326dab1951f74360eef88;hb=46be82dfd0850d7e96b1401a81a396e0cd0e0527;hp=8787df5cc647dda24f09b077276cbe0aa054fc47;hpb=659db3f673fe199bad6ce9cc625d3a1b098bfbcf;p=git.git diff --git a/log-tree.c b/log-tree.c index 8787df5cc..6ce239d8f 100644 --- a/log-tree.c +++ b/log-tree.c @@ -2,6 +2,7 @@ #include "diff.h" #include "commit.h" #include "log-tree.h" +#include "reflog-walk.h" static void show_parents(struct commit *commit, int abbrev) { @@ -101,6 +102,16 @@ static int append_signoff(char *buf, int buf_sz, int at, const char *signoff) return at; } +static unsigned int digits_in_number(unsigned int number) +{ + unsigned int i = 10, result = 1; + while (i <= number) { + i *= 10; + result++; + } + return result; +} + void show_log(struct rev_info *opt, const char *sep) { static char this_header[16384]; @@ -114,6 +125,14 @@ void show_log(struct rev_info *opt, const char *sep) opt->loginfo = NULL; if (!opt->verbose_header) { + if (opt->left_right) { + if (commit->object.flags & BOUNDARY) + putchar('-'); + else if (commit->object.flags & SYMMETRIC_LEFT) + putchar('<'); + else + putchar('>'); + } fputs(diff_unique_abbrev(commit->object.sha1, abbrev_commit), stdout); if (opt->parents) show_parents(commit, abbrev_commit); @@ -134,7 +153,7 @@ void show_log(struct rev_info *opt, const char *sep) if (*sep != '\n' && opt->commit_format == CMIT_FMT_ONELINE) extra = "\n"; if (opt->shown_one && opt->commit_format != CMIT_FMT_ONELINE) - putchar('\n'); + putchar(opt->diffopt.line_termination); opt->shown_one = 1; /* @@ -146,7 +165,8 @@ void show_log(struct rev_info *opt, const char *sep) if (opt->total > 0) { static char buffer[64]; snprintf(buffer, sizeof(buffer), - "Subject: [PATCH %d/%d] ", + "Subject: [PATCH %0*d/%d] ", + digits_in_number(opt->total), opt->nr, opt->total); subject = buffer; } else if (opt->total == 0) @@ -191,11 +211,21 @@ void show_log(struct rev_info *opt, const char *sep) sha1, sha1); opt->diffopt.stat_sep = buffer; } - } else { - printf("%s%s%s", - diff_get_color(opt->diffopt.color_diff, DIFF_COMMIT), - opt->commit_format == CMIT_FMT_ONELINE ? "" : "commit ", - diff_unique_abbrev(commit->object.sha1, abbrev_commit)); + } else if (opt->commit_format != CMIT_FMT_USERFORMAT) { + fputs(diff_get_color(opt->diffopt.color_diff, DIFF_COMMIT), + stdout); + if (opt->commit_format != CMIT_FMT_ONELINE) + fputs("commit ", stdout); + if (opt->left_right) { + if (commit->object.flags & BOUNDARY) + putchar('-'); + else if (commit->object.flags & SYMMETRIC_LEFT) + putchar('<'); + else + putchar('>'); + } + fputs(diff_unique_abbrev(commit->object.sha1, abbrev_commit), + stdout); if (opt->parents) show_parents(commit, abbrev_commit); if (parent) @@ -205,6 +235,15 @@ void show_log(struct rev_info *opt, const char *sep) printf("%s", diff_get_color(opt->diffopt.color_diff, DIFF_RESET)); putchar(opt->commit_format == CMIT_FMT_ONELINE ? ' ' : '\n'); + if (opt->reflog_info) { + show_reflog_message(opt->reflog_info, + opt->commit_format == CMIT_FMT_ONELINE, + opt->relative_date); + if (opt->commit_format == CMIT_FMT_ONELINE) { + printf("%s", sep); + return; + } + } } /* @@ -243,9 +282,8 @@ int log_tree_diff_flush(struct rev_info *opt) opt->commit_format != CMIT_FMT_ONELINE) { int pch = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH; if ((pch & opt->diffopt.output_format) == pch) - printf("---%c", opt->diffopt.line_termination); - else - putchar(opt->diffopt.line_termination); + printf("---"); + putchar('\n'); } } diff_flush(&opt->diffopt);