When applying a patch from git that removes a binary file, patch complains and gives a non-zero exit code.
For example: $ mkdir a $ cd a $ git init Initialized empty Git repository in /tmp/a/.git/ $ cp /usr/share/icons/gnome/16x16/actions/add.png add.png $ git add add.png $ git commit -m "Add binary file." [master (root-commit) b4c29b0] Add binary file. 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 add.png $ git rm -f add.png rm 'add.png' $ git commit -m "Remove binary file." [master c0037af] Remove binary file. 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 add.png $ cp /usr/share/icons/gnome/16x16/actions/add.png add.png $ git show | patch patching file add.png File add.png is not empty after patch; not deleting $ echo $? 1 $ wc -c add.png 520 add.png The input patch looks like this: commit c0037af7ae54076ec529163bedf92c0ed3a5af58 Author: Tim Waugh <twa...@redhat.com> Date: Mon Aug 11 17:27:44 2014 +0100 Remove binary file. diff --git a/add.png b/add.png deleted file mode 100644 index 3f1347e..0000000 Binary files a/add.png and /dev/null differ Because of 'diff --git' and 'deleted file mode', patch rightly thinks this patch intends to delete that file. However, it doesn't actually delete it because it's a binary file so doesn't see any changes to make. Shouldn't it just delete the file in this instance? Tim. */
signature.asc
Description: This is a digitally signed message part