combine-diff: treat --summary like --stat

Currently "--cc --summary" on a merge shows nothing. Since we show "--cc
--stat" as a stat against the first parent, and because --summary is
typically used in combination with --stat, it makes sense to treat them
both the same way.

Note that we have to tweak t4013's setup a bit to test this case, as the
existing merges do not have any --summary results against their first
parent. But since the merge at the tip of 'master' does add and remove
files with respect to the second parent, we can just make a reversed
doppelganger merge where the parents are swapped.

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:35:40 -05:00 коммит произвёл Junio C Hamano
Родитель 8290faa077
Коммит 04b19fcafd
3 изменённых файлов: 14 добавлений и 0 удалений

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

@ -1326,6 +1326,7 @@ static const char *path_path(void *obj)
*/
#define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \
| DIFF_FORMAT_SHORTSTAT \
| DIFF_FORMAT_SUMMARY \
| DIFF_FORMAT_DIFFSTAT)
/* find set of paths that every parent touches */

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

@ -98,6 +98,12 @@ test_expect_success setup '
git commit -m "update mode" &&
git checkout -f master &&
# Same merge as master, but with parents reversed. Hide it in a
# pseudo-ref to avoid impacting tests with --all.
commit=$(echo reverse |
git commit-tree -p master^2 -p master^1 master^{tree}) &&
git update-ref REVERSE $commit &&
git config diff.renames false &&
git show-branch
@ -240,6 +246,7 @@ diff-tree --cc --stat --summary master
diff-tree -c --stat --summary side
diff-tree --cc --stat --summary side
diff-tree --cc --shortstat master
diff-tree --cc --summary REVERSE
# improved by Timo's patch
diff-tree --cc --patch-with-stat master
# improved by Timo's patch

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

@ -0,0 +1,6 @@
$ git diff-tree --cc --summary REVERSE
2562325a7ee916efb2481da93073b82cec801cbc
create mode 100644 file1
delete mode 100644 file2
delete mode 100644 file3
$