1#!/bin/sh 2# 3# Copyright (c) 2005 Junio C Hamano 4# 5 6test_description='More rename detection 7 8' 9. ./test-lib.sh 10. ../diff-lib.sh ;# test-lib chdir's into trash 11 12test_expect_success \ 13'prepare reference tree' \ 14'cat ../../COPYING >COPYING && 15 echo frotz >rezrov && 16 git-update-cache --add COPYING rezrov && 17 tree=$(git-write-tree)&& 18 echo$tree' 19 20test_expect_success \ 21'prepare work tree' \ 22'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 && 23 sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 && 24 rm -f COPYING && 25 git-update-cache --add --remove COPYING COPYING.?' 26 27# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2, 28# both are slightly edited, and unchanged rezrov. So we say you 29# copy-and-edit one, and rename-and-edit the other. We do not say 30# anything about rezrov. 31 32GIT_DIFF_OPTS=--unified=0 git-diff-cache -M -p$tree>current 33cat>expected <<\EOF 34diff--git a/COPYING b/COPYING.1 35copy from COPYING 36copy to COPYING.1 37--- a/COPYING 38+++ b/COPYING.1 39@@ -6+6 @@ 40- HOWEVER,in order to allow a migration to GPLv3 if that seems like 41+ However,in order to allow a migration to GPLv3 if that seems like 42diff--git a/COPYING b/COPYING.2 43rename from COPYING 44rename to COPYING.2 45--- a/COPYING 46+++ b/COPYING.2 47@@ -2+2 @@ 48- Note that the only valid version of the GPL as far as this project 49+ Note that the only valid version of the G.P.L as far as this project 50@@ -6+6 @@ 51- HOWEVER,in order to allow a migration to GPLv3 if that seems like 52+ HOWEVER,in order to allow a migration to G.P.Lv3 if that seems like 53@@ -12+12 @@ 54- This file is licensed under the GPL v2, or a later version 55+ This file is licensed under the G.P.L v2, or a later version 56EOF 57 58test_expect_success \ 59'validate output from rename/copy detection (#1)' \ 60'compare_diff_patch current expected' 61 62test_expect_success \ 63'prepare work tree again' \ 64'mv COPYING.2 COPYING && 65 git-update-cache --add --remove COPYING COPYING.1 COPYING.2' 66 67# tree has COPYING and rezrov. work tree has COPYING and COPYING.1, 68# both are slightly edited, and unchanged rezrov. So we say you 69# edited one, and copy-and-edit the other. We do not say 70# anything about rezrov. 71 72GIT_DIFF_OPTS=--unified=0 git-diff-cache -C -p$tree>current 73cat>expected <<\EOF 74diff--git a/COPYING b/COPYING 75--- a/COPYING 76+++ b/COPYING 77@@ -2+2 @@ 78- Note that the only valid version of the GPL as far as this project 79+ Note that the only valid version of the G.P.L as far as this project 80@@ -6+6 @@ 81- HOWEVER,in order to allow a migration to GPLv3 if that seems like 82+ HOWEVER,in order to allow a migration to G.P.Lv3 if that seems like 83@@ -12+12 @@ 84- This file is licensed under the GPL v2, or a later version 85+ This file is licensed under the G.P.L v2, or a later version 86diff--git a/COPYING b/COPYING.1 87copy from COPYING 88copy to COPYING.1 89--- a/COPYING 90+++ b/COPYING.1 91@@ -6+6 @@ 92- HOWEVER,in order to allow a migration to GPLv3 if that seems like 93+ However,in order to allow a migration to GPLv3 if that seems like 94EOF 95 96test_expect_success \ 97'validate output from rename/copy detection (#2)' \ 98'compare_diff_patch current expected' 99 100test_expect_success \ 101'prepare work tree once again' \ 102'cat ../../COPYING >COPYING && 103 git-update-cache --add --remove COPYING COPYING.1' 104 105# tree has COPYING and rezrov. work tree has COPYING and COPYING.1, 106# but COPYING is not edited. We say you copy-and-edit COPYING.1; this 107# is only possible because -C mode now reports the unmodified file to 108# the diff-core. Unchanged rezrov, although being fed to 109# git-diff-cache as well, should not be mentioned. 110 111GIT_DIFF_OPTS=--unified=0 \ 112 git-diff-cache -C --find-copies-harder -p$tree>current 113cat>expected <<\EOF 114diff--git a/COPYING b/COPYING.1 115copy from COPYING 116copy to COPYING.1 117--- a/COPYING 118+++ b/COPYING.1 119@@ -6+6 @@ 120- HOWEVER,in order to allow a migration to GPLv3 if that seems like 121+ However,in order to allow a migration to GPLv3 if that seems like 122EOF 123 124test_expect_success \ 125'validate output from rename/copy detection (#3)' \ 126'compare_diff_patch current expected' 127 128test_done