From 9d97aa6466fe03db504291e1cef3ac4c0c5160a9 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 1 Jun 2005 08:42:22 -0700 Subject: [PATCH] git-rev-list: add "--pretty" command line option That pretty-prints the resulting commit messages, so git-rev-list --pretty HEAD v2.6.12-rc5 | less -S basically ends up being a log of the changes between -rc5 and current head. It uses the pretty-printing helper function I just extracted from diff-tree.c. --- rev-list.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/rev-list.c b/rev-list.c index 6f76b9dd52..73b3e97452 100644 --- a/rev-list.c +++ b/rev-list.c @@ -10,7 +10,8 @@ static const char rev_list_usage[] = " --max-count=nr\n" " --max-age=epoch\n" " --min-age=epoch\n" - " --header"; + " --header\n" + " --pretty"; static void mark_parents_uninteresting(struct commit *commit) { @@ -41,7 +42,9 @@ int main(int argc, char **argv) unsigned char sha1[2][20]; struct commit_list *list = NULL; struct commit *commit, *end; - int i, verbose_header = 0, show_parents = 0; + int i, verbose_header = 0, show_parents = 0, pretty_print = 0; + int hdr_termination = 0; + const char *prefix = ""; unsigned long max_age = -1; unsigned long min_age = -1; int max_count = -1; @@ -66,6 +69,13 @@ int main(int argc, char **argv) verbose_header = 1; continue; } + if (!strcmp(arg, "--pretty")) { + verbose_header = 1; + pretty_print = 1; + hdr_termination = '\n'; + prefix = "commit "; + continue; + } if (!strcmp(arg, "--parents")) { show_parents = 1; continue; @@ -120,7 +130,7 @@ int main(int argc, char **argv) break; if (max_count != -1 && !max_count--) break; - printf("%s", sha1_to_hex(commit->object.sha1)); + printf("%s%s", prefix, sha1_to_hex(commit->object.sha1)); if (show_parents) { struct commit_list *parents = commit->parents; while (parents) { @@ -129,8 +139,15 @@ int main(int argc, char **argv) } } putchar('\n'); - if (verbose_header) - printf("%s%c", commit->buffer, 0); + if (verbose_header) { + const char *buf = commit->buffer; + if (pretty_print) { + static char pretty_header[16384]; + pretty_print_commit(commit->buffer, ~0, pretty_header, sizeof(pretty_header)); + buf = pretty_header; + } + printf("%s%c", buf, hdr_termination); + } } return 0; }