From: Derrick Stolee <dstolee@microsoft.com>
To: git@vger.kernel.org
Cc: peff@peff.net, Derrick Stolee <dstolee@microsoft.com>
Subject: [PATCH] commit: drop uses of get_cached_commit_buffer()
Date: Wed, 21 Feb 2018 14:17:11 -0500 [thread overview]
Message-ID: <1519240631-221761-1-git-send-email-dstolee@microsoft.com> (raw)
In-Reply-To: <20180221185204.GA8476@sigill.intra.peff.net>
The get_cached_commit_buffer() method provides access to the buffer
loaded for a struct commit, if it was ever loadead and was not freed.
Two places use this to inform how to output information about commits.
log-tree.c uses this method to short-circuit the output of commit
information when the buffer is not cached. However, this leads to
incorrect output in 'git log --oneline' where the short-OID is written
but then the rest of the commit information is dropped and the next
commit is written on the same line.
rev-list uses this method for two reasons:
- First, if the revision walk visits a commit twice, the buffer was
freed by rev-list in the first write. The output then does not
match the format expectations, since the OID is written without the
rest of the content.
- Second, if the revision walk visits a commit that was marked
UNINTERESTING, the walk may never load a buffer and hence rev-list
will not output the verbose information.
These behaviors are undocumented, untested, and unlikely to be
expected by users or other software attempting to parse this output.
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
builtin/rev-list.c | 2 +-
log-tree.c | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index 48300d9..d320b6f 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -134,7 +134,7 @@ static void show_commit(struct commit *commit, void *data)
else
putchar('\n');
- if (revs->verbose_header && get_cached_commit_buffer(commit, NULL)) {
+ if (revs->verbose_header) {
struct strbuf buf = STRBUF_INIT;
struct pretty_print_context ctx = {0};
ctx.abbrev = revs->abbrev;
diff --git a/log-tree.c b/log-tree.c
index fc0cc0d..22b2fb6 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -659,9 +659,6 @@ void show_log(struct rev_info *opt)
show_mergetag(opt, commit);
}
- if (!get_cached_commit_buffer(commit, NULL))
- return;
-
if (opt->show_notes) {
int raw;
struct strbuf notebuf = STRBUF_INIT;
--
2.7.4
next prev parent reply other threads:[~2018-02-21 19:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-20 22:12 Question about get_cached_commit_buffer() Derrick Stolee
2018-02-20 22:57 ` Jeff King
2018-02-21 14:13 ` Derrick Stolee
2018-02-21 18:48 ` Jeff King
2018-02-21 18:52 ` Jeff King
2018-02-21 19:17 ` Derrick Stolee [this message]
2018-02-21 19:19 ` [PATCH] commit: drop uses of get_cached_commit_buffer() Derrick Stolee
2018-02-21 23:34 ` Jeff King
2018-02-21 23:13 ` Jeff King
2018-02-21 23:22 ` Stefan Beller
2018-02-21 23:29 ` Jeff King
2018-02-22 1:52 ` Derrick Stolee
2018-02-21 22:22 ` Question about get_cached_commit_buffer() Junio C Hamano
2018-02-21 22:50 ` Jeff King
2018-02-21 23:03 ` Junio C Hamano
2018-02-21 23:27 ` [PATCH] revision: drop --show-all option Jeff King
2018-02-21 23:45 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1519240631-221761-1-git-send-email-dstolee@microsoft.com \
--to=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).