combine-diff: treat --shortstat like --stat

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2019-01-24 07:34:51 -05:00 коммит произвёл Junio C Hamano
Родитель 8817f0cc67
Коммит 8290faa077
3 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -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 */

Просмотреть файл

@ -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

Просмотреть файл

@ -0,0 +1,4 @@
$ git diff-tree --cc --shortstat master
59d314ad6f356dd08601a4cd5e530381da3e3c64
2 files changed, 5 insertions(+)
$