threads / discuss / 23954

Using git am -p 2 with binary patches

Subject: Using git am -p 2 with binary patches

## tl;dr

One message between May 31, 2010 and May 31, 2010.

replies: 0people: 1as markdown or json

Pico Geyer· May 31, 2010, 15:59 UTC · lore
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

← back to recent threads