Re: [PATCH v2] line-log: suppress diff output with "-s"
From: Junio C Hamano <hidden>
Date: 2019-03-11 01:49:58
Jeff King [off-list ref] writes:
On Fri, Mar 08, 2019 at 04:38:44PM +0100, Johannes Schindelin wrote:quoted
On Thu, 7 Mar 2019, Jeff King wrote:quoted
When "-L" is in use, we ignore any diff output format that the user provides to us, and just always print a patch (with extra context lines covering the whole area of interest). It's not entirely clear what we should do with all formats (e.g., should "--stat" show just the diffstat of the touched lines, or the stat for the whole file?). But "-s" is pretty clear: the user probably wants to see just the commits that touched those lines, without any diff at all. Let's at least make that work.Agree. The patch looks obviously good.Thanks. This leaves the other formats as silently ignored. Do we want to do something like this:
It probably would make sense to do this if only to avoid surprises.
quoted hunk
diff --git a/revision.c b/revision.c index eb8e51bc63..a1b4fe2aa6 100644 --- a/revision.c +++ b/revision.c@@ -2689,6 +2689,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s if (revs->first_parent_only && revs->bisect) die(_("--first-parent is incompatible with --bisect")); + if (revs->line_level_traverse && + (revs->diffopt.output_format & ~(DIFF_FORMAT_PATCH|DIFF_FORMAT_NO_OUTPUT))) + die(_("-L does not yet support diff formats besides -p and -s")); + if (revs->expand_tabs_in_log < 0) revs->expand_tabs_in_log = revs->expand_tabs_in_log_default;? -Peff