On Thu, Jan 18 2018, Nguyễn Thái Ngọc Duy jotted: > This is partly inspired by gerrit web interface which shows diffstat > like this, e.g. with commit 0433d533f1 (notice the "A" column on the > third line): > > > Documentation/merge-config.txt | 4 + > builtin/merge.c | 2 + > A t/t5573-pull-verify-signatures.sh | 81 ++++++++++++++++++ > t/t7612-merge-verify-signatures.sh | 45 ++++++++++ > 4 files changed, 132 insertions(+) This feature is awesome. This has bothered me about --stat, but I haven't done anything about it. > In other words, certain information currently shown with --summary is > embedded in the diffstat. This helps reading (all information of the > same file in the same line instead of two) and can reduce the number of > lines if you add/delete a lot of files. Wait, isn't there a bug here in the existing --summary code, its documentation says it'll show information "such as creations, renames and mode changes". But even though your --compact-summary shows that the file is being added and its mode changed: $ diff -ru <(./git-show --stat 0433d533f1) <(./git-show --stat --compact-summary 0433d533f1) --- /dev/fd/63 2018-01-18 21:11:51.186570555 +0000 +++ /dev/fd/62 2018-01-18 21:11:51.186570555 +0000 @@ -14,8 +14,8 @@ t: add tests for pull --verify-signatures merge: add config option for verifySignatures - Documentation/merge-config.txt | 4 ++ - builtin/merge.c | 2 + - t/t5573-pull-verify-signatures.sh | 81 ++++++++++++++++++++++++++++++++++++++ - t/t7612-merge-verify-signatures.sh | 45 +++++++++++++++++++++ + Documentation/merge-config.txt | 4 ++ + builtin/merge.c | 2 + + A+x t/t5573-pull-verify-signatures.sh | 81 ++++++++++++++++++++++++++++++++++ + t/t7612-merge-verify-signatures.sh | 45 +++++++++++++++++++ 4 files changed, 132 insertions(+) There is no difference between --stat with and without --summary on the same commit, shouldn't it show "create mode [...]" ? E.g. 95450bbbaa will do the trick for both: $ diff -ru <(./git-show --stat 95450bbbaa) <(./git-show --stat --summary 95450bbbaa) --- /dev/fd/63 2018-01-18 21:14:20.770050599 +0000 +++ /dev/fd/62 2018-01-18 21:14:20.770050599 +0000 @@ -14,3 +14,4 @@ git-svn.perl | 1 + t/t9169-git-svn-dcommit-crlf.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) + create mode 100755 t/t9169-git-svn-dcommit-crlf.sh $ diff -ru <(./git-show --stat --summary 95450bbbaa) <(./git-show --stat --compact-summary 95450bbbaa) --- /dev/fd/63 2018-01-18 21:14:30.646016210 +0000 +++ /dev/fd/62 2018-01-18 21:14:30.646016210 +0000 @@ -11,7 +11,6 @@ Reported-by: Brian Bennett <Brian.Bennett@xxxxxxxxxxxxxxxx> Signed-off-by: Eric Wong <e@xxxxxxxxx> - git-svn.perl | 1 + - t/t9169-git-svn-dcommit-crlf.sh | 27 +++++++++++++++++++++++++++ + git-svn.perl | 1 + + A+x t/t9169-git-svn-dcommit-crlf.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) - create mode 100755 t/t9169-git-svn-dcommit-crlf.sh > +--compact-summary:: > + Output a condensed summary of extended header information in > + front of the file name part of diffstat. This option is > + ignored if --stat is not specified. > ++ If for some reason the lack of information about the commit under --summary isn't a bug/fixable it makes sense to document the differences here. > +File creations or deletions are denoted wigth "A" or "D" respectively, s/wigth/with/ > +optionally "+l" if it's a symlink, or "+x" if it's executable. > +Mode changes are shown "M+x" or "M-x" for adding or removing "Mode changes are shown as" is better worded.