summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2019-01-24 12:35:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-01-24 20:18:53 (GMT)
commit04b19fcafd734245e61fd1c090cd7de8c2993eaa (patch)
treea854de97fc20da34375096928079dbe2d376f6dd
parent8290faa077784a2518d0a77b448ca2987c3baf07 (diff)
downloadgit-04b19fcafd734245e61fd1c090cd7de8c2993eaa.zip
git-04b19fcafd734245e61fd1c090cd7de8c2993eaa.tar.gz
git-04b19fcafd734245e61fd1c090cd7de8c2993eaa.tar.bz2
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>
-rw-r--r--combine-diff.c1
-rwxr-xr-xt/t4013-diff-various.sh7
-rw-r--r--t/t4013/diff.diff-tree_--cc_--summary_REVERSE6
3 files changed, 14 insertions, 0 deletions
diff --git a/combine-diff.c b/combine-diff.c
index b4a92a8..ea79830 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -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 */
diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh
index 9ccdf08..e289539 100755
--- a/t/t4013-diff-various.sh
+++ b/t/t4013-diff-various.sh
@@ -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
diff --git a/t/t4013/diff.diff-tree_--cc_--summary_REVERSE b/t/t4013/diff.diff-tree_--cc_--summary_REVERSE
new file mode 100644
index 0000000..e208dd5
--- /dev/null
+++ b/t/t4013/diff.diff-tree_--cc_--summary_REVERSE
@@ -0,0 +1,6 @@
+$ git diff-tree --cc --summary REVERSE
+2562325a7ee916efb2481da93073b82cec801cbc
+ create mode 100644 file1
+ delete mode 100644 file2
+ delete mode 100644 file3
+$