git/t/t4116-apply-reverse.sh
Johannes Schindelin 5bd74506cd Get rid of the dependency to GNU diff in the tests
Now that "git diff" handles stdin and relative paths outside the
working tree correctly, we can convert all instances of "diff -u"
to "git diff".

This commit is really the result of

$ perl -pi.bak -e 's/diff -u/git diff/' $(git grep -l "diff -u" t/)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

(cherry picked from commit c699a40d68215c7e44a5b26117a35c8a56fbd387)
2007-03-04 00:24:15 -08:00

86 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='git-apply in reverse
'
. ./test-lib.sh
test_expect_success setup '
for i in a b c d e f g h i j k l m n; do echo $i; done >file1 &&
tr "[ijk]" '\''[\0\1\2]'\'' <file1 >file2 &&
git add file1 file2 &&
git commit -m initial &&
git tag initial &&
for i in a b c g h i J K L m o n p q; do echo $i; done >file1 &&
tr "[mon]" '\''[\0\1\2]'\'' <file1 >file2 &&
git commit -a -m second &&
git tag second &&
git diff --binary initial second >patch
'
test_expect_success 'apply in forward' '
T0=`git rev-parse "second^{tree}"` &&
git reset --hard initial &&
git apply --index --binary patch &&
T1=`git write-tree` &&
test "$T0" = "$T1"
'
test_expect_success 'apply in reverse' '
git reset --hard second &&
git apply --reverse --binary --index patch &&
git diff >diff &&
git diff /dev/null diff
'
test_expect_success 'setup separate repository lacking postimage' '
git tar-tree initial initial | tar xf - &&
(
cd initial && git init && git add .
) &&
git tar-tree second second | tar xf - &&
(
cd second && git init && git add .
)
'
test_expect_success 'apply in forward without postimage' '
T0=`git rev-parse "second^{tree}"` &&
(
cd initial &&
git apply --index --binary ../patch &&
T1=`git write-tree` &&
test "$T0" = "$T1"
)
'
test_expect_success 'apply in reverse without postimage' '
T0=`git rev-parse "initial^{tree}"` &&
(
cd second &&
git apply --index --binary --reverse ../patch &&
T1=`git write-tree` &&
test "$T0" = "$T1"
)
'
test_done