Code

Merge branch 'jc/maint-1.6.0-diff-borrow-carefully'
authorJunio C Hamano <gitster@pobox.com>
Sat, 28 Mar 2009 07:42:31 +0000 (00:42 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 28 Mar 2009 07:42:31 +0000 (00:42 -0700)
* jc/maint-1.6.0-diff-borrow-carefully:
  diff --cached: do not borrow from a work tree when a path is marked as assume-unchanged

1  2 
diff.c
t/t4020-diff-external.sh

diff --cc diff.c
Simple merge
index f8c99f1a985ba14a4361e9d1e75486d6806c8f77,f853b8a894246f1f9d09c18656e290a2e2f9ce6d..0720001281db6aeb5a3b6bb46cd6914ad7d78d33
@@@ -125,31 -104,15 +125,39 @@@ echo NULZbetweenZwords | perl -pe 'y/Z/
  test_expect_success 'force diff with "diff"' '
        echo >.gitattributes "file diff" &&
        git diff >actual &&
 -      test_cmp ../t4020/diff.NUL actual
 +      test_cmp "$TEST_DIRECTORY"/t4020/diff.NUL actual
 +'
 +
 +test_expect_success 'GIT_EXTERNAL_DIFF with more than one changed files' '
 +      echo anotherfile > file2 &&
 +      git add file2 &&
 +      git commit -m "added 2nd file" &&
 +      echo modified >file2 &&
 +      GIT_EXTERNAL_DIFF=echo git diff
 +'
 +
 +echo "#!$SHELL_PATH" >fake-diff.sh
 +cat >> fake-diff.sh <<\EOF
 +cat $2 >> crlfed.txt
 +EOF
 +chmod a+x fake-diff.sh
 +
 +keep_only_cr () {
 +      tr -dc '\015'
 +}
 +
 +test_expect_success 'external diff with autocrlf = true' '
 +      git config core.autocrlf true &&
 +      GIT_EXTERNAL_DIFF=./fake-diff.sh git diff &&
 +      test $(wc -l < crlfed.txt) = $(cat crlfed.txt | keep_only_cr | wc -c)
  '
  
+ test_expect_success 'diff --cached' '
+       git add file &&
+       git update-index --assume-unchanged file &&
+       echo second >file &&
+       git diff --cached >actual &&
+       test_cmp ../t4020/diff.NUL actual
+ '
  test_done