From: Junio C Hamano Date: Fri, 26 May 2006 18:05:41 GMT Subject: Re: git-apply can't apply patches to CRLF-files Message-ID: <7virnsk6fe.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <4477262A.5000301@Intel.com> Salikh Zakirov writes: > git-apply can't apply the patch to file with windows-style CRLF line endings, > even if the patch was generated by git-format-patch. I do not think that is the case. > Is this a bug or known deficiency? This particular reproduction recipe looks like a PEBCAK; it does not reproduce for me, but I do not have/use unix2dos so I did DOSsy line endings a bit differently. git init-db echo 'abc@' | tr '[@]' '[\015]' >a git add a git commit -m initial echo 'def@' | tr '[@]' '[\015]' >>a git commit -a -m second git format-patch HEAD^ git reset --hard HEAD^ git am 0*.txt > The following script reproduces the problem > --------- > #!/bin/sh > set -e > mkdir trash > cd trash > git init-db > echo "abc" > a > unix2dos a > git add a > git commit -m "a added" a > echo "cde" >> a > unix2dos a Here the first line of a ends with \r\n already end the second line ends with a \n. Does running unix2dos on that do a sensible thing on the first line? Compare it with my above recipe which appends DOSsy line at the end of the file. Having said that, CRLF is unsafe for E-mail transfers anyway, so I think we would need a special option to tell git-apply that it should match '\n' that appears in the patch with '\r\n' in the file being patched. But I do not think that has anything to do with the breakage you saw in your reproduction recipe.