diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-01 08:42:22 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-01 08:42:22 -0700 |
commit | 9d97aa6466fe03db504291e1cef3ac4c0c5160a9 (patch) | |
tree | e0aee5d285af161a64a2f11a1dfec956ece71378 /rev-list.c | |
parent | e3bc7a3bc7b77f44d686003f5a9346a135529f73 (diff) | |
download | git-9d97aa6466fe03db504291e1cef3ac4c0c5160a9.tar.gz git-9d97aa6466fe03db504291e1cef3ac4c0c5160a9.tar.xz |
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.
Diffstat (limited to 'rev-list.c')
-rw-r--r-- | rev-list.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/rev-list.c b/rev-list.c index 6f76b9dd5..73b3e9745 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; } |