Add support for "commit name decorations" to log family of commands

This adds "--decorate" as a log option, which prints out the ref names
of any commits that are shown.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Linus Torvalds
2007-04-16 16:05:10 -07:00
committed by Junio C Hamano
parent a59b276e18
commit ca135e7acc
3 changed files with 61 additions and 2 deletions

View File

@ -4,6 +4,8 @@
#include "log-tree.h"
#include "reflog-walk.h"
struct decoration name_decoration = { "object names" };
static void show_parents(struct commit *commit, int abbrev)
{
struct commit_list *p;
@ -13,6 +15,23 @@ static void show_parents(struct commit *commit, int abbrev)
}
}
static void show_decorations(struct commit *commit)
{
const char *prefix;
struct name_decoration *decoration;
decoration = lookup_decoration(&name_decoration, &commit->object);
if (!decoration)
return;
prefix = " (";
while (decoration) {
printf("%s%s", prefix, decoration->name);
prefix = ", ";
decoration = decoration->next;
}
putchar(')');
}
/*
* Search for "^[-A-Za-z]+: [^@]+@" pattern. It usually matches
* Signed-off-by: and Acked-by: lines.
@ -136,6 +155,7 @@ void show_log(struct rev_info *opt, const char *sep)
fputs(diff_unique_abbrev(commit->object.sha1, abbrev_commit), stdout);
if (opt->parents)
show_parents(commit, abbrev_commit);
show_decorations(commit);
putchar(opt->diffopt.line_termination);
return;
}
@ -240,6 +260,7 @@ void show_log(struct rev_info *opt, const char *sep)
printf(" (from %s)",
diff_unique_abbrev(parent->object.sha1,
abbrev_commit));
show_decorations(commit);
printf("%s",
diff_get_color(opt->diffopt.color_diff, DIFF_RESET));
putchar(opt->commit_format == CMIT_FMT_ONELINE ? ' ' : '\n');