Re: [PATCH] range-diff: add a --no-patch option to show a summary
From: Johannes Schindelin <hidden>
Date: 2018-11-07 10:34:48
Hi Ævar, On Tue, 6 Nov 2018, Ævar Arnfjörð Bjarmason wrote:
On Tue, Nov 06 2018, Johannes Schindelin wrote:quoted
On Mon, 5 Nov 2018, Ævar Arnfjörð Bjarmason wrote:quoted
On Mon, Nov 05 2018, Eric Sunshine wrote:quoted
On Mon, Nov 5, 2018 at 3:07 PM Ævar Arnfjörð Bjarmason [off-list ref] wrote:quoted
Add a --no-patch option which shows which changes got removed, added or moved etc., without showing the diff associated with them.This option existed in the very first version[1] of range-diff (then called branch-diff) implemented by Dscho, although it was called --no-patches (with an "es"), which it inherited from tbdiff. I think someone (possibly me) pointed out that --no-patch (sans "es") would be more consistent with existing Git options. I don't recall why Dscho removed the option during the re-rolls, but the explanation may be in that thread.Thanks for digging. Big thread, not going to re-read it now. I'd just like to have this.In my hands, the well-documented `-s` option works (see e.g. https://git-scm.com/docs/git-diff#git-diff--s), although I have to admit that the `git-range-diff` manual does not talk about the diff-options. And for the record, for me, `git range-diff A...B --no-patch` *already* works.Neither of those works for me without my patch. E.g. ./git-range-diff -s 711aaa392f...a5ba8f2101 ./git-range-diff --no-patch 711aaa392f...a5ba8f2101 This is on current next, 2.19.1.1182.g4ecb1133ce. What version are you on?
I tried it with git version 2.19.0.windows.1. To verify, I repeated this with `next` (git version 2.19.1.1215.g8438c0b2453a): ./git range-diff -s 711aaa392f...a5ba8f2101 fatal: unrecognized argument: --output-indicator-new=> error: could not parse log for 'a5ba8f2101..711aaa392f' Which means that something broke rather dramatically between v2.19.0.windows.1 and 8438c0b2453a. Ciao, Dscho
quoted
quoted
quoted
I was also wondering if --summarize or --summary-only might be a better name, describing the behavior at a higher level, but since there is precedent for --no-patch (or --no-patches in tbdiff), perhaps the name is fine as is.I think we should aim to keep a 1=1 mapping between range-diff and log/show options when possible, even though the output might have a slightly different flavor as my 4th paragraph discussing a potential --stat talks about. E.g. I can imagine that range-diff --no-patch --stat --summary would not show the patch, but a stat as described there, plus e.g. a "create mode..." if applicable. This change implements only a tiny fraction of that, but it would be very neat if we supported more stuff, and showed it in range-diff-y way, e.g. some compact format showing: 1 file changed, 3->2 insertions(+), 10->9 deletions(-) create mode 100(6 -> 7)44 new-executablequoted
The patch itself looks okay. [1]: https://public-inbox.org/git/8bc517e35d4842f8d9d98f3b99adb9475d6db2d2.1525361419.git.johannes.schindelin@gmx.de/