git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations)
@ 2025-10-19 18:46 Дилян Палаузов
  2025-10-20  0:59 ` Ben Knoble
  2025-10-21  8:14 ` Jeff King
  0 siblings, 2 replies; 5+ messages in thread
From: Дилян Палаузов @ 2025-10-19 18:46 UTC (permalink / raw)
  To: git

Hello,

After `git diff --stat` determines the available width, it uses correctly all available space for the file paths and names:

```
$ git show --stat --oneline 
0fb93104ba (HEAD -> java223/main) SourceGenerator: avoid delayed actions after the bundle is deactivated
 .../main/java/org/openhab/automation/java223/internal/Java223ScriptEngineFactory.java    |  1 +
 .../java/org/openhab/automation/java223/internal/codegeneration/SourceGenerator.java     | 16 +++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)
```
https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---statwidthname-widthcount describes that after --stat can be entered up to three numbers, two of which can be set by a config option.  The same options apply also for show --stat : https://git-scm.com/docs/git-show#Documentation/git-show.txt---statwidthname-widthcount .

I set in /etc/gitconfig:
[diff]
        statGraphWidth = 200
        statNameWidth = 200

which is effectively the same as calling:
```
$ git show --stat-graph-width=200 --stat-graph-width=200 --oneline
0fb93104ba (HEAD -> java223/main) SourceGenerator: avoid delayed actions after the bundle is deactivated
 .../main/java/org/openhab/automation/java223/internal/Java223ScriptEngineFactory.java    |  1 +
 .../java/org/openhab/automation/java223/internal/codegeneration/SourceGenerator.java     | 16 +++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)
```
There is no difference.  diff.statGraphWidth / diff.statNameWidth / --stat-graph-width= / --stat-graph-width=200 set some number of columns within the available space.  But I want to change the size of the available space to defaut to 200 (or to infinity).

The reason is that I can then copy the file path (e.g. with the mouse) from the git --stat output and open it immediately with less or emacs.

* Please either alter the option `diff.statGraphWidth` to enlarge the available space (broader than the terminal width), or add an option to `git config` to set the available space for `--stat`.  This option should eventually allow always to print the full path and filenames.

Greetings
  Дилян
---
git 2.51.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations)
  2025-10-19 18:46 No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations) Дилян Палаузов
@ 2025-10-20  0:59 ` Ben Knoble
  2025-10-21  8:14 ` Jeff King
  1 sibling, 0 replies; 5+ messages in thread
From: Ben Knoble @ 2025-10-20  0:59 UTC (permalink / raw)
  To: Дилян Палаузов
  Cc: git


> Le 19 oct. 2025 à 14:50, Дилян Палаузов <dilyan.palauzov@aegee.org> a écrit :

[snip]

> The reason is that I can then copy the file path (e.g. with the mouse) from the git --stat output and open it immediately with less or emacs.

You might be interested in git-jump in the contrib area.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations)
  2025-10-19 18:46 No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations) Дилян Палаузов
  2025-10-20  0:59 ` Ben Knoble
@ 2025-10-21  8:14 ` Jeff King
  2025-10-21 14:46   ` Junio C Hamano
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff King @ 2025-10-21  8:14 UTC (permalink / raw)
  To: Дилян Палаузов
  Cc: git

On Sun, Oct 19, 2025 at 09:46:10PM +0300, Дилян Палаузов wrote:

> * Please either alter the option `diff.statGraphWidth` to enlarge the
> available space (broader than the terminal width), or add an option to
> `git config` to set the available space for `--stat`.  This option
> should eventually allow always to print the full path and filenames.

It does seem funny that we have config options for 2 out of 3 of the
numbers you can specify via --stat. So adding diff.statTotalWidth or
something would make sense to me. I'd guess nobody has asked for it yet
because it defaults to the terminal width, so a static config option
risks overflowing your terminal if it's too high. On the other hand, if
we are going to show it in a pager anyway, they usually support
horizontal scrolling. And I guess it's all a matter of preference.

Anyway, one more possible hack: you can set COLUMNS if you want to
pretend you have a really big terminal. I.e., "export COLUMNS=200" would
probably do what you want without any new Git feature.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations)
  2025-10-21  8:14 ` Jeff King
@ 2025-10-21 14:46   ` Junio C Hamano
  2025-10-22  9:15     ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2025-10-21 14:46 UTC (permalink / raw)
  To: Jeff King
  Cc: Дилян Палаузов,
	git

Jeff King <peff@peff.net> writes:

> Anyway, one more possible hack: you can set COLUMNS if you want to
> pretend you have a really big terminal. I.e., "export COLUMNS=200" would
> probably do what you want without any new Git feature.

;-)

Isn't that the exact purpose of that environment variable?  It feels
a bit unfair to the variable to call it a hack.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations)
  2025-10-21 14:46   ` Junio C Hamano
@ 2025-10-22  9:15     ` Jeff King
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff King @ 2025-10-22  9:15 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Дилян Палаузов,
	git

On Tue, Oct 21, 2025 at 07:46:13AM -0700, Junio C Hamano wrote:

> Jeff King <peff@peff.net> writes:
> 
> > Anyway, one more possible hack: you can set COLUMNS if you want to
> > pretend you have a really big terminal. I.e., "export COLUMNS=200" would
> > probably do what you want without any new Git feature.
> 
> ;-)
> 
> Isn't that the exact purpose of that environment variable?  It feels
> a bit unfair to the variable to call it a hack.

Yes, though I think OP wanted something that would work for every
invocation of git, without having to pass it explicitly (otherwise they
could just use "--stat=200"). Setting COLUMNS=200 sounds like a risky
proposition if you run other programs besides Git.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-10-22  9:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-19 18:46 No config option for `git diff --stat` to always show the full file path and name (without .../ abbreviations) Дилян Палаузов
2025-10-20  0:59 ` Ben Knoble
2025-10-21  8:14 ` Jeff King
2025-10-21 14:46   ` Junio C Hamano
2025-10-22  9:15     ` Jeff King

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).