-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
git-apply: fail if a patch cannot be applied.
Recently we fixed 'git-apply --stat' not to barf on a binary differences. But it accidentally broke the error detection when we actually attempt to apply them. This commit fixes the problem and adds test cases. Signed-off-by: Junio C Hamano <junkio@cox.net>
- Loading branch information
Junio C Hamano
committed
Nov 16, 2005
1 parent
5b4525e
commit 92927ed
Showing
2 changed files
with
85 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2005 Junio C Hamano | ||
# | ||
|
||
test_description='git-apply handling binary patches | ||
' | ||
. ./test-lib.sh | ||
|
||
# setup | ||
|
||
cat >file1 <<EOF | ||
A quick brown fox jumps over the lazy dog. | ||
A tiny little penguin runs around in circles. | ||
There is a flag with Linux written on it. | ||
A slow black-and-white panda just sits there, | ||
munching on his bamboo. | ||
EOF | ||
cat file1 >file2 | ||
cat file1 >file4 | ||
|
||
git-update-index --add --remove file1 file2 file4 | ||
git-commit -m 'Initial Version' 2>/dev/null | ||
|
||
git-checkout -b binary | ||
tr 'x' '\0' <file1 >file3 | ||
cat file3 >file4 | ||
git-add file2 | ||
tr '\0' 'v' <file3 >file1 | ||
rm -f file2 | ||
git-update-index --add --remove file1 file2 file3 file4 | ||
git-commit -m 'Second Version' | ||
|
||
git-diff-tree -p master binary >B.diff | ||
git-diff-tree -p -C master binary >C.diff | ||
|
||
test_expect_success 'stat binary diff -- should not fail.' \ | ||
'git-checkout master | ||
git-apply --stat --summary B.diff' | ||
|
||
test_expect_success 'stat binary diff (copy) -- should not fail.' \ | ||
'git-checkout master | ||
git-apply --stat --summary C.diff' | ||
|
||
test_expect_failure 'check binary diff -- should fail.' \ | ||
'git-checkout master | ||
git-apply --check B.diff' | ||
|
||
test_expect_failure 'check binary diff (copy) -- should fail.' \ | ||
'git-checkout master | ||
git-apply --check C.diff' | ||
|
||
# Now we start applying them. | ||
|
||
test_expect_failure 'apply binary diff -- should fail.' \ | ||
'git-checkout master | ||
git-apply B.diff' | ||
|
||
git-reset --hard | ||
|
||
test_expect_failure 'apply binary diff -- should fail.' \ | ||
'git-checkout master | ||
git-apply --index B.diff' | ||
|
||
git-reset --hard | ||
|
||
test_expect_failure 'apply binary diff (copy) -- should fail.' \ | ||
'git-checkout master | ||
git-apply C.diff' | ||
|
||
git-reset --hard | ||
|
||
test_expect_failure 'apply binary diff (copy) -- should fail.' \ | ||
'git-checkout master | ||
git-apply --index C.diff' | ||
|
||
test_done |