git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Dragan Simic <dsimic@manjaro.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] diff --stat: add config option to limit filename width
Date: Mon, 11 Sep 2023 16:12:31 -0700	[thread overview]
Message-ID: <xmqqil8gs3s0.fsf@gitster.g> (raw)
In-Reply-To: <87badb12f040d1c66cd9b89074d3de5015a45983.1694446743.git.dsimic@manjaro.org> (Dragan Simic's message of "Mon, 11 Sep 2023 17:39:44 +0200")

Dragan Simic <dsimic@manjaro.org> writes:

> Add new configuration option diff.statNameWidth=<width> that is equivalent
> to the command-line option --stat-name-width=<width>, but it is ignored
> by format-patch.  This follows the logic established by the already
> existing configuration option diff.statGraphWidth=<width>.
>
> Limiting the widths of names and graphs in the --stat output makes sense
> for interactive work on wide terminals with many columns, hence the support
> for these configuration options.  They don't affect format-patch because
> it already adheres to the traditional 80-column standard.
>
> Update the documentation and add more tests to cover new configuration
> option diff.statNameWidth=<width>.  While there, perform a few minor code
> and whitespace cleanups here and there, as spotted.
>
> Signed-off-by: Dragan Simic <dsimic@manjaro.org>
> ---

The stat lines have <width> (the entire display width),
<graph-width> (what appears after '|') and <name-width> (what
appears before '|'), so I would worry about letting users specify
all three to contradictory values, if there weren't an existing
command line option already.  But of course there already is a
command line option, so somebody more clever than me must have
thought about how to deal with such an impossible settings, and
adding a configuration variable to specify the same impossible
settings to the system would not make things worse.

>  Documentation/config/diff.txt  |  4 ++++
>  Documentation/diff-options.txt | 17 +++++++-------
>  builtin/diff.c                 |  1 +
>  builtin/log.c                  |  1 +
>  builtin/merge.c                |  1 +
>  builtin/rebase.c               |  1 +

Someday, as a follow-up after the dust from this topic settles, we
would probably want to look at how these rev.diffopt.* members are
initialized and refactor the common code out to a helper.  It would
allow us to instead of doing this ...

>  	/* Set up defaults that will apply to both no-index and regular diffs. */
>  	rev.diffopt.stat_width = -1;
> +	rev.diffopt.stat_name_width = -1;
>  	rev.diffopt.stat_graph_width = -1;
>  	rev.diffopt.flags.allow_external = 1;
>  	rev.diffopt.flags.allow_textconv = 1;

... in many places, do so in a single place in the helper function,
and these places will just call the helper:

	std_graph_options(&rev.diffopt);

I do not know offhand if "stat graph options related members" is a
good line to draw, or there are other things that are common outside
these .stat_foo members.  If the latter and the helper function will
initialize the members other than the stat-graph settings, its name
obviously needs a bit more thought, but you get the idae.

Thanks.

  reply	other threads:[~2023-09-12  1:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-11 15:39 [PATCH] diff --stat: add config option to limit filename width Dragan Simic
2023-09-11 23:12 ` Junio C Hamano [this message]
2023-09-12  2:11   ` Dragan Simic
2023-09-12 17:11     ` Junio C Hamano
2023-09-12 17:48       ` Dragan Simic
2023-09-16  2:09     ` Dragan Simic
2023-09-18 16:38       ` Junio C Hamano
2023-09-19  1:27         ` Dragan Simic

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=xmqqil8gs3s0.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=dsimic@manjaro.org \
    --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).