aboutsummaryrefslogtreecommitdiff
path: root/t/t4000-diff-format.sh
diff options
context:
space:
mode:
authorMatthieu Moy <Matthieu.Moy@imag.fr>2013-07-16 10:05:37 +0200
committerJunio C Hamano <gitster@pobox.com>2013-07-17 17:50:56 -0700
commit71482d389d0b214d2cfc2adf788ba1011a7dcb18 (patch)
treeeed10dcbed7a53968a322849650287642b3bf23d /t/t4000-diff-format.sh
parentd09cd15d19de23aca532a85f6d27a71b2baceb3f (diff)
downloadgit-71482d389d0b214d2cfc2adf788ba1011a7dcb18.tar.gz
git-71482d389d0b214d2cfc2adf788ba1011a7dcb18.tar.xz
diff: allow --patch & cie to override -s/--no-patch
All options that trigger a patch output now override --no-patch. The case of --binary deserves extra attention: the name may suggest that it turns a normal patch into a binary patch, but it actually already enables patch output when normally disabled (e.g. "git log --binary" displays a patch), hence it makes sense for "git show --no-patch --binary" to display the binary patch. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4000-diff-format.sh')
-rwxr-xr-xt/t4000-diff-format.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/t/t4000-diff-format.sh b/t/t4000-diff-format.sh
index 3b9a9ae68..8de36b7d1 100755
--- a/t/t4000-diff-format.sh
+++ b/t/t4000-diff-format.sh
@@ -71,4 +71,22 @@ test_expect_success 'git diff-files --no-patch as synonym for -s' '
test_must_be_empty err
'
+test_expect_success 'git diff-files --no-patch --patch shows the patch' '
+ git diff-files --no-patch --patch >actual &&
+ compare_diff_patch expected actual
+'
+
+test_expect_success 'git diff-files --no-patch --patch-with-raw shows the patch and raw data' '
+ git diff-files --no-patch --patch-with-raw >actual &&
+ grep -q "^:100644 100755 .* 0000000000000000000000000000000000000000 M path0\$" actual &&
+ tail -n +4 actual >actual-patch &&
+ compare_diff_patch expected actual-patch
+'
+
+test_expect_success 'git diff-files --patch --no-patch does not show the patch' '
+ git diff-files --patch --no-patch >actual 2>err &&
+ test_must_be_empty actual &&
+ test_must_be_empty err
+'
+
test_done