Subject: Re: New directory lost by git am

From: Chris Packham <[email-masked]>
Date: Wed, 05 Mar 2014 21:10:20 +1300

On 05/03/14 16:22, Phillip Susi wrote:
> On 03/04/2014 10:08 PM, Chris Packham wrote:
>> Could you provide a few more details such as your git version (git 
>> --version) and an example of the failure. I've tried to reproduce
>> the problem based on the description provided but everything seems
>> to work as expected for me.
> 
> Version 1.8.3.2.
> 
>> git --version git version 1.9.0 mkdir test && cd test && git init 
>> echo "hello world" >a.txt git add a.txt git commit -m"Initial
>> commit" git checkout -b temp mkdir b echo "lorem ipsum" >b/b.txt 
>> git add b/b.txt git commit -m"Add b/b.txt" ls -R .: a.txt  b
>>
>> ./b: b.txt git checkout master git format-patch temp -1 --stdout |
>> git am ls -R .: a.txt  b
>>
>> ./b: b.txt
>>
> 
> You are reapplying the patch while it is already applied.

My example is creating a commit on the "temp" branch then applying it to
the "master" branch using git am.

> Do a reset
> HEAD~1 --hard, and git clean -x -f -d before git am.  I didn't notice
> the missing file myself for some time because it is left in the
> working tree, just not added to the index and included in the commit.
> 

Regardless of reproducing the issue a quick glance at the Release notes
for 1.8.3.3 the following sticks out:

Fixes since v1.8.3.2
--------------------

 * "git apply" parsed patches that add new files, generated by programs
   other than Git, incorrectly.  This is an old breakage in v1.7.11.

Does that sound like your problem? If you can I'd suggest updating,
ideally to the recent 1.9.0 release but if you're feeling conservative
try 1.8.3.4.