-
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.
With the new flag "--reject", hunks that do not apply are sent to the standard output, and the usable hunks are applied. The command itself exits with non-zero status when this happens, so that the user or wrapper can take notice and sort the remaining mess out. Signed-off-by: Junio C Hamano <junkio@cox.net>
- Loading branch information
Junio C Hamano
committed
Aug 17, 2006
1 parent
2cda1a2
commit 57dc397
Showing
3 changed files
with
198 additions
and
23 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
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,96 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2005 Junio C Hamano | ||
# | ||
|
||
test_description='git-apply with rejects | ||
' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success setup ' | ||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ||
do | ||
echo $i | ||
done >file1 && | ||
cat file1 >saved.file1 && | ||
git update-index --add file1 && | ||
git commit -m initial && | ||
for i in 1 2 A B 4 5 6 7 8 9 10 11 12 C 13 14 15 16 17 18 19 20 D 21 | ||
do | ||
echo $i | ||
done >file1 && | ||
git diff >patch.1 && | ||
mv file1 file2 && | ||
git update-index --add --remove file1 file2 && | ||
git diff -M HEAD >patch.2 && | ||
rm -f file1 file2 && | ||
mv saved.file1 file1 && | ||
git update-index --add --remove file1 file2 && | ||
for i in 1 E 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 F 21 | ||
do | ||
echo $i | ||
done >file1 && | ||
cat file1 >saved.file1 | ||
' | ||
|
||
test_expect_success 'apply without --reject should fail' ' | ||
if git apply patch.1 | ||
then | ||
echo "Eh? Why?" | ||
exit 1 | ||
fi | ||
diff -u file1 saved.file1 | ||
' | ||
|
||
test_expect_success 'apply with --reject should fail but update the file' ' | ||
cat saved.file1 >file1 | ||
if git apply --reject patch.1 >rejects | ||
then | ||
echo "succeeds with --reject?" | ||
exit 1 | ||
fi | ||
cat rejects | ||
for i in 1 E 2 3 4 5 6 7 8 9 10 11 12 C 13 14 15 16 17 18 19 20 F 21 | ||
do | ||
echo $i | ||
done >expected.file1 && | ||
diff -u file1 expected.file1 | ||
' | ||
|
||
test_expect_success 'apply with --reject should fail but update the file' ' | ||
cat saved.file1 >file1 | ||
if git apply --reject patch.2 >rejects | ||
then | ||
echo "succeeds with --reject?" | ||
exit 1 | ||
fi | ||
cat rejects | ||
for i in 1 E 2 3 4 5 6 7 8 9 10 11 12 C 13 14 15 16 17 18 19 20 F 21 | ||
do | ||
echo $i | ||
done >expected.file2 && | ||
test -f file1 && { | ||
echo "file1 still exists?" | ||
exit 1 | ||
} | ||
diff -u file2 expected.file2 | ||
' | ||
|
||
test_done |