Re: Recent unresolved issues
From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:23
Subsystem:
the rest · Maintainer:
Linus Torvalds
On Fri, 14 Apr 2006, Linus Torvalds wrote:
It's nice to note how simple and straightforward this makes the built-in "git log" command, even though it continues to support all the diff flags too. It doesn't get much simpler that this.
Gaah. Missed this important part, which causes the thing to ignore the "--pretty=xyzzy" argument, since it would always use its own default format that is no longer ever changed. I even tested that it works for git-diff-tree, just not for git log. Duh. (Found the hard way - after I had already used the broken git version for doing several merges, and the "--pretty=oneline" format didn't work and screwed up the merge message ;) Linus ----
diff --git a/git.c b/git.c
index e8d1fcc..d5a4a24 100644
--- a/git.c
+++ b/git.c@@ -283,9 +283,6 @@ static int cmd_log(int argc, const char struct rev_info rev; struct commit *commit; char *buf = xmalloc(LOGSIZE); - static enum cmit_fmt commit_format = CMIT_FMT_DEFAULT; - int abbrev = DEFAULT_ABBREV; - int abbrev_commit = 0; const char *commit_prefix = "commit "; int shown = 0;
@@ -298,11 +295,11 @@ static int cmd_log(int argc, const char prepare_revision_walk(&rev); setup_pager(); while ((commit = get_revision(&rev)) != NULL) { - if (shown && rev.diff && commit_format != CMIT_FMT_ONELINE) + if (shown && rev.diff && rev.commit_format != CMIT_FMT_ONELINE) putchar('\n'); fputs(commit_prefix, stdout); - if (abbrev_commit && abbrev) - fputs(find_unique_abbrev(commit->object.sha1, abbrev), + if (rev.abbrev_commit && rev.abbrev) + fputs(find_unique_abbrev(commit->object.sha1, rev.abbrev), stdout); else fputs(sha1_to_hex(commit->object.sha1), stdout);
@@ -325,12 +322,12 @@ static int cmd_log(int argc, const char parents = parents->next) parents->item->object.flags &= ~TMP_MARK; } - if (commit_format == CMIT_FMT_ONELINE) + if (rev.commit_format == CMIT_FMT_ONELINE) putchar(' '); else putchar('\n'); - pretty_print_commit(commit_format, commit, ~0, buf, - LOGSIZE, abbrev); + pretty_print_commit(rev.commit_format, commit, ~0, buf, + LOGSIZE, rev.abbrev); printf("%s\n", buf); if (rev.diff) log_tree_commit(&rev, commit);