Message ID | 20190124123450.GD11354@sigill.intra.peff.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | some diff --cc --stat fixes | expand |
Thanks for the fix here. On Thu, 2019-01-24 at 07:34 -0500, Jeff King wrote: > The --stat of a combined diff is defined as the first-parent stat, > going all the way back to 965f803c32 (combine-diff: show diffstat > with > the first parent., 2006-04-17). > > Naturally, we gave --numstat the same treatment in 74e2abe5b7 (diff > --numstat, 2006-10-12). > > But --shortstat, which is really just the final line of --stat, does > nothing, which produces confusing results: > > $ git show --oneline --stat eab7584e37 > eab7584e37 Merge branch 'en/show-ref-doc-fix' > > Documentation/git-show-ref.txt | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > $ git show --oneline --shortstat eab7584e37 > eab7584e37 Merge branch 'en/show-ref-doc-fix' > > [nothing! We'd expect to see the "1 file changed..." line] > > This patch teaches combine-diff to treats the two formats > identically. > > Reported-by: David Turner <novalis@novalis.org> > Signed-off-by: Jeff King <peff@peff.net> > --- > combine-diff.c | 1 + > t/t4013-diff-various.sh | 1 + > t/t4013/diff.diff-tree_--cc_--shortstat_master | 4 ++++ > 3 files changed, 6 insertions(+) > create mode 100644 t/t4013/diff.diff-tree_--cc_--shortstat_master > > diff --git a/combine-diff.c b/combine-diff.c > index b1d259d5a0..83ec3dfffa 100644 > --- a/combine-diff.c > +++ b/combine-diff.c > @@ -1325,6 +1325,7 @@ static const char *path_path(void *obj) > * Diff stat formats which we always compute solely against the > first parent. > */ > #define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \ > + | DIFF_FORMAT_SHORTSTAT \ > | DIFF_FORMAT_DIFFSTAT) > > /* find set of paths that every parent touches */ > diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh > index 7d985ff6b1..9ccdf08730 100755 > --- a/t/t4013-diff-various.sh > +++ b/t/t4013-diff-various.sh > @@ -239,6 +239,7 @@ diff-tree --cc --stat --summary master > # stat summary should show the diffstat and summary with the first > parent > diff-tree -c --stat --summary side > diff-tree --cc --stat --summary side > +diff-tree --cc --shortstat master > # improved by Timo's patch > diff-tree --cc --patch-with-stat master > # improved by Timo's patch > diff --git a/t/t4013/diff.diff-tree_--cc_--shortstat_master > b/t/t4013/diff.diff-tree_--cc_--shortstat_master > new file mode 100644 > index 0000000000..a4ca42df2a > --- /dev/null > +++ b/t/t4013/diff.diff-tree_--cc_--shortstat_master > @@ -0,0 +1,4 @@ > +$ git diff-tree --cc --shortstat master > +59d314ad6f356dd08601a4cd5e530381da3e3c64 > + 2 files changed, 5 insertions(+) > +$
On Thu, Jan 24, 2019 at 4:34 AM Jeff King <peff@peff.net> wrote: > > The --stat of a combined diff is defined as the first-parent stat, > going all the way back to 965f803c32 (combine-diff: show diffstat with > the first parent., 2006-04-17). > > Naturally, we gave --numstat the same treatment in 74e2abe5b7 (diff > --numstat, 2006-10-12). > > But --shortstat, which is really just the final line of --stat, does > nothing, which produces confusing results: > > $ git show --oneline --stat eab7584e37 > eab7584e37 Merge branch 'en/show-ref-doc-fix' > > Documentation/git-show-ref.txt | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > $ git show --oneline --shortstat eab7584e37 > eab7584e37 Merge branch 'en/show-ref-doc-fix' > > [nothing! We'd expect to see the "1 file changed..." line] > > This patch teaches combine-diff to treats the two formats identically. > > Reported-by: David Turner <novalis@novalis.org> > Signed-off-by: Jeff King <peff@peff.net> Both the previous patch and this one is reviewed by me. Thanks, Stefan
diff --git a/combine-diff.c b/combine-diff.c index b1d259d5a0..83ec3dfffa 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1325,6 +1325,7 @@ static const char *path_path(void *obj) * Diff stat formats which we always compute solely against the first parent. */ #define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \ + | DIFF_FORMAT_SHORTSTAT \ | DIFF_FORMAT_DIFFSTAT) /* find set of paths that every parent touches */ diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 7d985ff6b1..9ccdf08730 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -239,6 +239,7 @@ diff-tree --cc --stat --summary master # stat summary should show the diffstat and summary with the first parent diff-tree -c --stat --summary side diff-tree --cc --stat --summary side +diff-tree --cc --shortstat master # improved by Timo's patch diff-tree --cc --patch-with-stat master # improved by Timo's patch diff --git a/t/t4013/diff.diff-tree_--cc_--shortstat_master b/t/t4013/diff.diff-tree_--cc_--shortstat_master new file mode 100644 index 0000000000..a4ca42df2a --- /dev/null +++ b/t/t4013/diff.diff-tree_--cc_--shortstat_master @@ -0,0 +1,4 @@ +$ git diff-tree --cc --shortstat master +59d314ad6f356dd08601a4cd5e530381da3e3c64 + 2 files changed, 5 insertions(+) +$
The --stat of a combined diff is defined as the first-parent stat, going all the way back to 965f803c32 (combine-diff: show diffstat with the first parent., 2006-04-17). Naturally, we gave --numstat the same treatment in 74e2abe5b7 (diff --numstat, 2006-10-12). But --shortstat, which is really just the final line of --stat, does nothing, which produces confusing results: $ git show --oneline --stat eab7584e37 eab7584e37 Merge branch 'en/show-ref-doc-fix' Documentation/git-show-ref.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) $ git show --oneline --shortstat eab7584e37 eab7584e37 Merge branch 'en/show-ref-doc-fix' [nothing! We'd expect to see the "1 file changed..." line] This patch teaches combine-diff to treats the two formats identically. Reported-by: David Turner <novalis@novalis.org> Signed-off-by: Jeff King <peff@peff.net> --- combine-diff.c | 1 + t/t4013-diff-various.sh | 1 + t/t4013/diff.diff-tree_--cc_--shortstat_master | 4 ++++ 3 files changed, 6 insertions(+) create mode 100644 t/t4013/diff.diff-tree_--cc_--shortstat_master