Merge branch 'maint-1.5.4' into maint
[gitweb.git] / t / t4008-diff-break-rewrite.sh
old mode 100644 (file)
new mode 100755 (executable)
index 7189462..26c2e4a
@@ -22,52 +22,38 @@ four changes in total.
 Further, with -B and -M together, these should turn into two renames.
 '
 . ./test-lib.sh
-
-_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"
-sanitize_diff_raw='s/ '"$_x40"' '"$_x40"' \([CDNR]\)[0-9]*     / X X \1#       /'
-compare_diff_raw () {
-    # When heuristics are improved, the score numbers would change.
-    # Ignore them while comparing.
-    # Also we do not check SHA1 hash generation in this test, which
-    # is a job for t0000-basic.sh
-
-    sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
-    sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
-    diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
-}
+. ../diff-lib.sh ;# test-lib chdir's into trash
 
 test_expect_success \
     setup \
     'cat ../../README >file0 &&
      cat ../../COPYING >file1 &&
-    git-update-cache --add file0 file1 &&
-    tree=$(git-write-tree) &&
+    git update-index --add file0 file1 &&
+    tree=$(git write-tree) &&
     echo "$tree"'
 
 test_expect_success \
     'change file1 with copy-edit of file0 and remove file0' \
     'sed -e "s/git/GIT/" file0 >file1 &&
      rm -f file0 &&
-    git-update-cache --remove file0 file1'
+    git update-index --remove file0 file1'
 
 test_expect_success \
     'run diff with -B' \
-    'git-diff-cache -B --cached "$tree" >current'
+    'git diff-index -B --cached "$tree" >current'
 
 cat >expected <<\EOF
 :100644 000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 0000000000000000000000000000000000000000 D     file0
-:100644 000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0000000000000000000000000000000000000000 D100  file1
-:000000 100644 0000000000000000000000000000000000000000 11e331465a89c394dc25c780de230043750c1ec8 N100  file1
+:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 11e331465a89c394dc25c780de230043750c1ec8 M100  file1
 EOF
 
 test_expect_success \
     'validate result of -B (#1)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'run diff with -B and -M' \
-    'git-diff-cache -B -M "$tree" >current'
+    'git diff-index -B -M "$tree" >current'
 
 cat >expected <<\EOF
 :100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 08bb2fb671deff4c03a4d4a0a1315dff98d5732c R100  file0   file1
@@ -75,36 +61,34 @@ EOF
 
 test_expect_success \
     'validate result of -B -M (#2)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'swap file0 and file1' \
     'rm -f file0 file1 &&
-     git-read-tree -m $tree &&
-     git-checkout-cache -f -u -a &&
+     git read-tree -m $tree &&
+     git checkout-index -f -u -a &&
      mv file0 tmp &&
      mv file1 file0 &&
      mv tmp file1 &&
-     git-update-cache file0 file1'
+     git update-index file0 file1'
 
 test_expect_success \
     'run diff with -B' \
-    'git-diff-cache -B "$tree" >current'
+    'git diff-index -B "$tree" >current'
 
 cat >expected <<\EOF
-:100644 000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 0000000000000000000000000000000000000000 D100  file0
-:000000 100644 0000000000000000000000000000000000000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 N100  file0
-:100644 000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0000000000000000000000000000000000000000 D100  file1
-:000000 100644 0000000000000000000000000000000000000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 N100  file1
+:100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 6ff87c4664981e4397625791c8ea3bbb5f2279a3 M100  file0
+:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 M100  file1
 EOF
 
 test_expect_success \
     'validate result of -B (#3)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'run diff with -B and -M' \
-    'git-diff-cache -B -M "$tree" >current'
+    'git diff-index -B -M "$tree" >current'
 
 cat >expected <<\EOF
 :100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 6ff87c4664981e4397625791c8ea3bbb5f2279a3 R100  file1   file0
@@ -113,47 +97,45 @@ EOF
 
 test_expect_success \
     'validate result of -B -M (#4)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'make file0 into something completely different' \
     'rm -f file0 &&
      ln -s frotz file0 &&
-     git-update-cache file0 file1'
+     git update-index file0 file1'
 
 test_expect_success \
     'run diff with -B' \
-    'git-diff-cache -B "$tree" >current'
+    'git diff-index -B "$tree" >current'
 
 cat >expected <<\EOF
 :100644 120000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 67be421f88824578857624f7b3dc75e99a8a1481 T     file0
-:100644 000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0000000000000000000000000000000000000000 D100  file1
-:000000 100644 0000000000000000000000000000000000000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 N100  file1
+:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 M100  file1
 EOF
 
 test_expect_success \
     'validate result of -B (#5)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
-    'run diff with -B' \
-    'git-diff-cache -B -M "$tree" >current'
+    'run diff with -B -M' \
+    'git diff-index -B -M "$tree" >current'
 
-# This should not mistake file0 as the copy source of new file1
-# due to type differences.
+# file0 changed from regular to symlink.  file1 is very close to the preimage of file0.
+# because we break file0, file1 can become a rename of it.
 cat >expected <<\EOF
 :100644 120000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 67be421f88824578857624f7b3dc75e99a8a1481 T     file0
-:100644 000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0000000000000000000000000000000000000000 D100  file1
-:000000 100644 0000000000000000000000000000000000000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 N100  file1
+:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 R     file0   file1
 EOF
 
 test_expect_success \
     'validate result of -B -M (#6)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'run diff with -M' \
-    'git-diff-cache -M "$tree" >current'
+    'git diff-index -M "$tree" >current'
 
 # This should not mistake file0 as the copy source of new file1
 # due to type differences.
@@ -164,36 +146,35 @@ EOF
 
 test_expect_success \
     'validate result of -M (#7)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'file1 edited to look like file0 and file0 rename-edited to file2' \
     'rm -f file0 file1 &&
-     git-read-tree -m $tree &&
-     git-checkout-cache -f -u -a &&
+     git read-tree -m $tree &&
+     git checkout-index -f -u -a &&
      sed -e "s/git/GIT/" file0 >file1 &&
      sed -e "s/git/GET/" file0 >file2 &&
      rm -f file0
-     git-update-cache --add --remove file0 file1 file2'
+     git update-index --add --remove file0 file1 file2'
 
 test_expect_success \
     'run diff with -B' \
-    'git-diff-cache -B "$tree" >current'
+    'git diff-index -B "$tree" >current'
 
 cat >expected <<\EOF
 :100644 000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 0000000000000000000000000000000000000000 D     file0
-:100644 000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0000000000000000000000000000000000000000 D100  file1
-:000000 100644 0000000000000000000000000000000000000000 08bb2fb671deff4c03a4d4a0a1315dff98d5732c N100  file1
-:000000 100644 0000000000000000000000000000000000000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 N     file2
+:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 08bb2fb671deff4c03a4d4a0a1315dff98d5732c M100  file1
+:000000 100644 0000000000000000000000000000000000000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 A     file2
 EOF
 
 test_expect_success \
     'validate result of -B (#8)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_expect_success \
     'run diff with -B -M' \
-    'git-diff-cache -B -M "$tree" >current'
+    'git diff-index -B -M "$tree" >current'
 
 cat >expected <<\EOF
 :100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 08bb2fb671deff4c03a4d4a0a1315dff98d5732c C095  file0   file1
@@ -202,6 +183,6 @@ EOF
 
 test_expect_success \
     'validate result of -B -M (#9)' \
-    'compare_diff_raw current expected'
+    'compare_diff_raw expected current'
 
 test_done