23
git-update-index --add --remove file1 file2 file4
23
git update-index --add --remove file1 file2 file4
24
24
git-commit -m 'Initial Version' 2>/dev/null
26
26
git-checkout -b binary
27
27
tr 'x' '\0' <file1 >file3
30
30
tr '\0' 'v' <file3 >file1
32
git-update-index --add --remove file1 file2 file3 file4
32
git update-index --add --remove file1 file2 file3 file4
33
33
git-commit -m 'Second Version'
35
git-diff-tree -p master binary >B.diff
36
git-diff-tree -p -C master binary >C.diff
35
git diff-tree -p master binary >B.diff
36
git diff-tree -p -C master binary >C.diff
38
git-diff-tree -p --binary master binary >BF.diff
39
git-diff-tree -p --binary -C master binary >CF.diff
38
git diff-tree -p --binary master binary >BF.diff
39
git diff-tree -p --binary -C master binary >CF.diff
41
41
test_expect_success 'stat binary diff -- should not fail.' \
42
42
'git-checkout master
43
git-apply --stat --summary B.diff'
43
git apply --stat --summary B.diff'
45
45
test_expect_success 'stat binary diff (copy) -- should not fail.' \
46
46
'git-checkout master
47
git-apply --stat --summary C.diff'
47
git apply --stat --summary C.diff'
49
49
test_expect_failure 'check binary diff -- should fail.' \
50
50
'git-checkout master
51
git-apply --check B.diff'
51
git apply --check B.diff'
53
53
test_expect_failure 'check binary diff (copy) -- should fail.' \
54
54
'git-checkout master
55
git-apply --check C.diff'
55
git apply --check C.diff'
57
57
test_expect_failure 'check incomplete binary diff with replacement -- should fail.' \
58
58
'git-checkout master
59
git-apply --check --allow-binary-replacement B.diff'
59
git apply --check --allow-binary-replacement B.diff'
61
61
test_expect_failure 'check incomplete binary diff with replacement (copy) -- should fail.' \
62
62
'git-checkout master
63
git-apply --check --allow-binary-replacement C.diff'
63
git apply --check --allow-binary-replacement C.diff'
65
65
test_expect_success 'check binary diff with replacement.' \
66
66
'git-checkout master
67
git-apply --check --allow-binary-replacement BF.diff'
67
git apply --check --allow-binary-replacement BF.diff'
69
69
test_expect_success 'check binary diff with replacement (copy).' \
70
70
'git-checkout master
71
git-apply --check --allow-binary-replacement CF.diff'
71
git apply --check --allow-binary-replacement CF.diff'
73
73
# Now we start applying them.
81
81
test_expect_failure 'apply binary diff -- should fail.' \
85
85
test_expect_failure 'apply binary diff -- should fail.' \
87
git-apply --index B.diff'
89
test_expect_failure 'apply binary diff (copy) -- should fail.' \
93
test_expect_failure 'apply binary diff (copy) -- should fail.' \
95
git-apply --index C.diff'
87
git apply --index B.diff'
89
test_expect_failure 'apply binary diff (copy) -- should fail.' \
93
test_expect_failure 'apply binary diff (copy) -- should fail.' \
95
git apply --index C.diff'
97
97
test_expect_success 'apply binary diff without replacement.' \
101
101
test_expect_success 'apply binary diff without replacement (copy).' \
105
105
test_expect_success 'apply binary diff.' \
107
git-apply --allow-binary-replacement --index BF.diff &&
108
test -z "$(git-diff --name-status binary)"'
107
git apply --allow-binary-replacement --index BF.diff &&
108
test -z "$(git diff --name-status binary)"'
110
110
test_expect_success 'apply binary diff (copy).' \
112
git-apply --allow-binary-replacement --index CF.diff &&
113
test -z "$(git-diff --name-status binary)"'
112
git apply --allow-binary-replacement --index CF.diff &&
113
test -z "$(git diff --name-status binary)"'