From: Jeff King <peff@peff.net>
To: Jonas Fonseca <fonseca@diku.dk>
Cc: git@vger.kernel.org
Subject: [tig PATCH] blame broken in recent master
Date: Wed, 30 Mar 2011 10:24:30 -0400 [thread overview]
Message-ID: <20110330142430.GA32523@sigill.intra.peff.net> (raw)
As of 730ae86 (Rename prepare_io to prepare_update and make it more
specialized, 2011-03-16), "tig blame" finds no actual blamed commits.
The problem seems to be that prepare_update switched from calling
format_argv to argv_copy, and we end up calling "git blame %(blameargs)"
without "%(blameargs)" expanded. Blame looks like the only caller which
actually uses a placeholder, so it is the only one broken.
The patch below fixes it for me, but it seems like a hack. I'm not
really sure why the switch in prepare_update was made; clearly it is
part of some refactoring, but I'm not sure what your larger plans were.
---
diff --git a/tig.c b/tig.c
index c1e5270..9ef61d3 100644
--- a/tig.c
+++ b/tig.c
@@ -4240,15 +4240,20 @@ blame_read_file(struct view *view, const char *line, bool *read_file)
"git", "blame", "%(blameargs)", "--incremental",
*opt_ref ? opt_ref : "--incremental", "--", opt_file, NULL
};
+ const char **formatted_argv = NULL;
+
+ format_argv(&formatted_argv, blame_argv, FALSE, !view->prev);
if (view->lines == 0 && !view->prev)
die("No blame exist for %s", view->vid);
- if (view->lines == 0 || !start_update(view, blame_argv, opt_cdup)) {
+ if (view->lines == 0 || !start_update(view, formatted_argv, opt_cdup)) {
report("Failed to load blame data");
+ argv_free(formatted_argv);
return TRUE;
}
+ argv_free(formatted_argv);
*read_file = FALSE;
return FALSE;
next reply other threads:[~2011-03-30 14:25 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-30 14:24 Jeff King [this message]
[not found] ` <BANLkTinJm4Zp18D_M=TTLSDr6jBLcPB9RQ@mail.gmail.com>
2011-04-09 19:00 ` [tig PATCH] blame broken in recent master Jeff King
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110330142430.GA32523@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=fonseca@diku.dk \
--cc=git@vger.kernel.org \
/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.
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 NNTP newsgroup(s).