t4127-apply-same-fn: Avoid sed -i
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt committed
Jul 4, 2008 at 08:43 UTC
41872fd573601b123da00294f77d7d4c25db6010
1 file changed
+16
-11
t/t4127-apply-same-fn.sh
+16
-11
@@ -4,6 +4,11 @@ test_description='apply same filename'
4
5
. ./test-lib.sh
6
7
+modify () {
8
+ sed -e "$1" < "$2" > "$2".x &&
9
+ mv "$2".x "$2"
10
+}
11
+
12
test_expect_success setup '
13
for i in a b c d e f g h i j k l m
14
do
@@ -14,10 +19,10 @@ test_expect_success setup '
19
git commit -m initial
20
'
21
test_expect_success 'apply same filename with independent changes' '
17
- sed -i -e "s/^d/z/" same_fn &&
22
+ modify "s/^d/z/" same_fn &&
23
git diff > patch0 &&
24
git add same_fn &&
20
- sed -i -e "s/^i/y/" same_fn &&
25
+ modify "s/^i/y/" same_fn &&
26
git diff >> patch0 &&
27
cp same_fn same_fn2 &&
28
git reset --hard &&
@@ -27,10 +32,10 @@ test_expect_success 'apply same filename with independent changes' '
32
33
test_expect_success 'apply same filename with overlapping changes' '
34
git reset --hard
30
- sed -i -e "s/^d/z/" same_fn &&
35
+ modify "s/^d/z/" same_fn &&
36
git diff > patch0 &&
37
git add same_fn &&
33
- sed -i -e "s/^e/y/" same_fn &&
38
+ modify "s/^e/y/" same_fn &&
39
git diff >> patch0 &&
40
cp same_fn same_fn2 &&
41
git reset --hard &&
@@ -41,10 +46,10 @@ test_expect_success 'apply same filename with overlapping changes' '
46
test_expect_success 'apply same new filename after rename' '
47
git reset --hard
48
git mv same_fn new_fn
44
- sed -i -e "s/^d/z/" new_fn &&
49
+ modify "s/^d/z/" new_fn &&
50
git add new_fn &&
51
git diff -M --cached > patch1 &&
47
- sed -i -e "s/^e/y/" new_fn &&
52
+ modify "s/^e/y/" new_fn &&
53
git diff >> patch1 &&
54
cp new_fn new_fn2 &&
55
git reset --hard &&
@@ -55,11 +60,11 @@ test_expect_success 'apply same new filename after rename' '
60
test_expect_success 'apply same old filename after rename -- should fail.' '
61
git reset --hard
62
git mv same_fn new_fn
58
- sed -i -e "s/^d/z/" new_fn &&
63
+ modify "s/^d/z/" new_fn &&
64
git add new_fn &&
65
git diff -M --cached > patch1 &&
66
git mv new_fn same_fn
62
- sed -i -e "s/^e/y/" same_fn &&
67
+ modify "s/^e/y/" same_fn &&
68
git diff >> patch1 &&
69
git reset --hard &&
70
test_must_fail git apply patch1
@@ -68,15 +73,15 @@ test_expect_success 'apply same old filename after rename -- should fail.' '
73
test_expect_success 'apply A->B (rename), C->A (rename), A->A -- should pass.' '
74
git reset --hard
75
git mv same_fn new_fn
71
- sed -i -e "s/^d/z/" new_fn &&
76
+ modify "s/^d/z/" new_fn &&
77
git add new_fn &&
78
git diff -M --cached > patch1 &&
79
git commit -m "a rename" &&
80
git mv other_fn same_fn
76
- sed -i -e "s/^e/y/" same_fn &&
81
+ modify "s/^e/y/" same_fn &&
82
git add same_fn &&
83
git diff -M --cached >> patch1 &&
79
- sed -i -e "s/^g/x/" same_fn &&
84
+ modify "s/^g/x/" same_fn &&
85
git diff >> patch1 &&
86
git reset --hard HEAD^ &&
87
git apply patch1