Using git am -p 2 with binary patches

From: Pico Geyer <hidden>
Date: 2016-06-15 22:48:53

Hi all.

I've been trying to apply a set of patches from one repository to a completely independent repository (no shared history).
Since the paths are different, I'm applying the patches with git am -p 2
I noticed that whenever my patches contain binary files, git-am fails to apply the patch.

Here's a simple test case:
mkdir gittmp
cd gittmp
git init
mkdir subdir
echo "abcdefghijklmnop" > blah.txt
tar -czf subdir/binfile.tgz blah.txt
git add subdir/binfile.tgz
git commit -m "Added binary file"
git format-patch --root HEAD
git am -p 2 0001-Added-binary-file.patch

And the output that I get is:
Applying: Added binary file
fatal: git diff header lacks filename information when removing 2 leading pathname components (line 9)
Patch failed at 0001 Added binary file
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".

Is this a bug in git-am or git-apply?
Or is there a good reason why this doesn't work?

I'm using the latest git version (1.7.1)

Thanks in advance.
Pico
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help