diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-11-26 22:57:31 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-11-26 22:57:31 +0300 |
commit | aa14a0c3f191ee4df7344eed119be5b4a527a0ff (patch) | |
tree | 1f0b79d76fef5d196d2aeed2e858c2866e71a6a0 | |
parent | 78a0014d807dd74aec160c6fc6db8e2fb7e7e9b1 (diff) | |
parent | 5aa3bdd50d4e4f59c41ee6e70ae1e738a3a28cc0 (diff) |
Merge branch 'maint'
* maint:
Teach "git diff" to honour --[no-]ext-diff
-rw-r--r-- | builtin-diff.c | 5 | ||||
-rwxr-xr-x | t/t4020-diff-external.sh | 21 |
2 files changed, 25 insertions, 1 deletions
diff --git a/builtin-diff.c b/builtin-diff.c index 7ceceeb6ff..b90d8bcdb6 100644 --- a/builtin-diff.c +++ b/builtin-diff.c @@ -290,6 +290,9 @@ int cmd_diff(int argc, const char **argv, const char *prefix) /* Otherwise, we are doing the usual "git" diff */ rev.diffopt.skip_stat_unmatch = !!diff_auto_refresh_index; + /* Default to let external be used */ + DIFF_OPT_SET(&rev.diffopt, ALLOW_EXTERNAL); + if (nongit) die("Not a git repository"); argc = setup_revisions(argc, argv, &rev, NULL); @@ -298,7 +301,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix) if (diff_setup_done(&rev.diffopt) < 0) die("diff_setup_done failed"); } - DIFF_OPT_SET(&rev.diffopt, ALLOW_EXTERNAL); + DIFF_OPT_SET(&rev.diffopt, RECURSIVE); DIFF_OPT_SET(&rev.diffopt, ALLOW_TEXTCONV); diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh index dfe3fbc74b..caea292f15 100755 --- a/t/t4020-diff-external.sh +++ b/t/t4020-diff-external.sh @@ -43,6 +43,13 @@ test_expect_success 'GIT_EXTERNAL_DIFF environment should apply only to diff' ' ' +test_expect_success 'GIT_EXTERNAL_DIFF environment and --no-ext-diff' ' + + GIT_EXTERNAL_DIFF=echo git diff --no-ext-diff | + grep "^diff --git a/file b/file" + +' + test_expect_success 'diff attribute' ' git config diff.parrot.command echo && @@ -68,6 +75,13 @@ test_expect_success 'diff attribute should apply only to diff' ' ' +test_expect_success 'diff attribute and --no-ext-diff' ' + + git diff --no-ext-diff | + grep "^diff --git a/file b/file" + +' + test_expect_success 'diff attribute' ' git config --unset diff.parrot.command && @@ -94,6 +108,13 @@ test_expect_success 'diff attribute should apply only to diff' ' ' +test_expect_success 'diff attribute and --no-ext-diff' ' + + git diff --no-ext-diff | + grep "^diff --git a/file b/file" + +' + test_expect_success 'no diff with -diff' ' echo >.gitattributes "file -diff" && git diff | grep Binary |