Message ID | 1c7db4dbe26715912672630c1a5659591931cb2d.1688586536.git.phillip.wood@dunelm.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | df521462f01b61314c9c18a4b58a53db0cd7bf3c |
Headers | show |
Series | diff --no-index: support reading from named pipes | expand |
Phillip Wood <phillip.wood123@gmail.com> writes: > + cat >expect <<-EOF && > + diff --git a/- b/a/1 > + index $ZERO_OID..$(git hash-object --stdin <a/1) 100644 > + --- a/- > + +++ b/a/1 > + @@ -1 +1 @@ > + -x > + +1 > + EOF > + > + test_write_lines x | test_expect_code 1 \ > + git -c core.abbrev=no diff --no-index -- - a/1 >actual && Or "git diff --no-index --full-index -- - a/1", which looks somewhat odd but may be correct and a bit shorter ;-) Not a suggestion to use --full-index instead of core.abbrev; both are equally valid. > + test_cmp expect actual && > + > + test_write_lines 1 | git diff --no-index -- a/1 - >actual && > + test_must_be_empty actual > +' Good. > test_expect_success 'diff --no-index refuses to diff stdin and a directory' ' > test_must_fail git diff --no-index -- - a </dev/null 2>err && > grep "fatal: cannot compare stdin to a directory" err
diff --git a/t/t4053-diff-no-index.sh b/t/t4053-diff-no-index.sh index 5bfb282e98..4870443609 100755 --- a/t/t4053-diff-no-index.sh +++ b/t/t4053-diff-no-index.sh @@ -205,6 +205,25 @@ test_expect_success POSIXPERM,SYMLINKS 'diff --no-index normalizes: mode not lik test_cmp expected actual ' +test_expect_success "diff --no-index treats '-' as stdin" ' + cat >expect <<-EOF && + diff --git a/- b/a/1 + index $ZERO_OID..$(git hash-object --stdin <a/1) 100644 + --- a/- + +++ b/a/1 + @@ -1 +1 @@ + -x + +1 + EOF + + test_write_lines x | test_expect_code 1 \ + git -c core.abbrev=no diff --no-index -- - a/1 >actual && + test_cmp expect actual && + + test_write_lines 1 | git diff --no-index -- a/1 - >actual && + test_must_be_empty actual +' + test_expect_success 'diff --no-index refuses to diff stdin and a directory' ' test_must_fail git diff --no-index -- - a </dev/null 2>err && grep "fatal: cannot compare stdin to a directory" err