1#!/bin/sh 2# 3# Copyright (c) 2005 Junio C Hamano 4# 5 6test_description='Same rename detection as t4003 but testing diff-raw. 7 8' 9. ./test-lib.sh 10 11compare_diff_raw () { 12# When heuristics are improved, the score numbers would change. 13# Ignore them while comparing. 14sed-e's/ \([CR]\)[0-9]* /\1#/'<"$1">.tmp-1 15sed-e's/ \([CR]\)[0-9]* /\1#/'<"$2">.tmp-2 16diff-u .tmp-1 .tmp-2&&rm-f .tmp-1 .tmp-2 17} 18 19compare_diff_patch () { 20# When heuristics are improved, the score numbers would change. 21# Ignore them while comparing. 22sed-e'/^similarity index [0-9]*%$/d'<"$1">.tmp-1 23sed-e'/^similarity index [0-9]*%$/d'<"$2">.tmp-2 24diff-u .tmp-1 .tmp-2&&rm-f .tmp-1 .tmp-2 25} 26 27test_expect_success \ 28'prepare reference tree' \ 29'cat ../../COPYING >COPYING && 30 echo frotz >rezrov && 31 git-update-cache --add COPYING rezrov && 32 tree=$(git-write-tree)&& 33 echo$tree' 34 35test_expect_success \ 36'prepare work tree' \ 37'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 && 38 sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 && 39 rm -f COPYING && 40 git-update-cache --add --remove COPYING COPYING.?' 41 42# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2, 43# both are slightly edited, and unchanged rezrov. We say COPYING.1 44# and COPYING.2 are based on COPYING, and do not say anything about 45# rezrov. 46 47git-diff-cache -M$tree>current 48 49cat>expected <<\EOF 50:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1 51:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 R1234 COPYING COPYING.2 52EOF 53 54test_expect_success \ 55'validate output from rename/copy detection (#1)' \ 56'compare_diff_raw current expected' 57 58# make sure diff-helper can grok it. 59mv expected diff-raw 60GIT_DIFF_OPTS=--unified=0 git-diff-helper<diff-raw>current 61cat>expected <<\EOF 62diff--git a/COPYING b/COPYING.1 63copy from COPYING 64copy to COPYING.1 65--- a/COPYING 66+++ b/COPYING.1 67@@ -6+6 @@ 68- HOWEVER,in order to allow a migration to GPLv3 if that seems like 69+ However,in order to allow a migration to GPLv3 if that seems like 70diff--git a/COPYING b/COPYING.2 71rename old COPYING 72rename new COPYING.2 73--- a/COPYING 74+++ b/COPYING.2 75@@ -2+2 @@ 76- Note that the only valid version of the GPL as far as this project 77+ Note that the only valid version of the G.P.L as far as this project 78@@ -6+6 @@ 79- HOWEVER,in order to allow a migration to GPLv3 if that seems like 80+ HOWEVER,in order to allow a migration to G.P.Lv3 if that seems like 81@@ -12+12 @@ 82- This file is licensed under the GPL v2, or a later version 83+ This file is licensed under the G.P.L v2, or a later version 84EOF 85 86test_expect_success \ 87'validate output from diff-helper (#1)' \ 88'compare_diff_patch current expected' 89 90################################################################ 91 92test_expect_success \ 93'prepare work tree again' \ 94'mv COPYING.2 COPYING && 95 git-update-cache --add --remove COPYING COPYING.1 COPYING.2' 96 97# tree has COPYING and rezrov. work tree has COPYING and COPYING.1, 98# both are slightly edited, and unchanged rezrov. We say COPYING.1 99# is based on COPYING and COPYING is still there, and do not say anything 100# about rezrov. 101 102git-diff-cache -C$tree>current 103cat>expected <<\EOF 104:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M COPYING 105:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1 106EOF 107 108test_expect_success \ 109'validate output from rename/copy detection (#2)' \ 110'compare_diff_raw current expected' 111 112test_expect_success \ 113'prepare work tree once again' \ 114'cat ../../COPYING >COPYING && 115 git-update-cache --add --remove COPYING COPYING.1' 116 117# make sure diff-helper can grok it. 118mv expected diff-raw 119GIT_DIFF_OPTS=--unified=0 git-diff-helper<diff-raw>current 120cat>expected <<\EOF 121diff--git a/COPYING b/COPYING 122--- a/COPYING 123+++ b/COPYING 124@@ -2+2 @@ 125- Note that the only valid version of the GPL as far as this project 126+ Note that the only valid version of the G.P.L as far as this project 127@@ -6+6 @@ 128- HOWEVER,in order to allow a migration to GPLv3 if that seems like 129+ HOWEVER,in order to allow a migration to G.P.Lv3 if that seems like 130@@ -12+12 @@ 131- This file is licensed under the GPL v2, or a later version 132+ This file is licensed under the G.P.L v2, or a later version 133diff--git a/COPYING b/COPYING.1 134copy from COPYING 135copy to COPYING.1 136--- a/COPYING 137+++ b/COPYING.1 138@@ -6+6 @@ 139- HOWEVER,in order to allow a migration to GPLv3 if that seems like 140+ However,in order to allow a migration to GPLv3 if that seems like 141EOF 142 143test_expect_success \ 144'validate output from diff-helper (#2)' \ 145'compare_diff_patch current expected' 146 147################################################################ 148 149# tree has COPYING and rezrov. work tree has the same COPYING and 150# copy-edited COPYING.1, and unchanged rezrov. We should not say 151# anything about rezrov nor COPYING, since the revised again diff-raw 152# nows how to say Copy. 153 154git-diff-cache -C$tree>current 155cat>expected <<\EOF 156:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1 157EOF 158 159test_expect_success \ 160'validate output from rename/copy detection (#3)' \ 161'compare_diff_raw current expected' 162 163# make sure diff-helper can grok it. 164mv expected diff-raw 165GIT_DIFF_OPTS=--unified=0 git-diff-helper<diff-raw>current 166cat>expected <<\EOF 167diff--git a/COPYING b/COPYING.1 168copy from COPYING 169copy to COPYING.1 170--- a/COPYING 171+++ b/COPYING.1 172@@ -6+6 @@ 173- HOWEVER,in order to allow a migration to GPLv3 if that seems like 174+ However,in order to allow a migration to GPLv3 if that seems like 175EOF 176 177test_expect_success \ 178'validate output from diff-helper (#3)' \ 179'compare_diff_patch current expected' 180 181test_done