Fix "git log --diff-filter" bug
[gitweb.git] / t / t4006-diff-mode.sh
old mode 100644 (file)
new mode 100755 (executable)
index 90fd21f..ab5406d
@@ -11,15 +11,25 @@ test_description='Test mode change diffs.
 test_expect_success \
     'setup' \
     'echo frotz >rezrov &&
-     git-update-cache --add rezrov &&
-     tree=`git-write-tree` &&
+     git update-index --add rezrov &&
+     tree=`git write-tree` &&
      echo $tree'
 
-test_expect_success \
-    'chmod' \
-    'chmod +x rezrov &&
-     git-update-cache rezrov &&
-     git-diff-cache $tree >current'
+if [ "$(git config --get core.filemode)" = false ]
+then
+       say 'filemode disabled on the filesystem, using update-index --chmod=+x'
+       test_expect_success \
+           'git update-index --chmod=+x' \
+           'git update-index rezrov &&
+            git update-index --chmod=+x rezrov &&
+            git diff-index $tree >current'
+else
+       test_expect_success \
+           'chmod' \
+           'chmod +x rezrov &&
+            git update-index rezrov &&
+            git diff-index $tree >current'
+fi
 
 _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
 _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
@@ -28,7 +38,6 @@ echo ":100644 100755 X X M    rezrov" >expected
 
 test_expect_success \
     'verify' \
-    'diff -u expected check'
+    'git diff expected check'
 
 test_done
-