How to use diff and patch in Cygwin on Windows?

cygwin, diff, patch

Solution

This is almost certainly a line-ending problem. You can fix this by running `dos2unix` over the files first:

$ dos2unix origin.txt new.txt
$ patch origin.txt < file.patch
patching file origin.txt

Problem

I follow many articles out there but I still don't know how to use diff and patch in Cygwin Here I create 2 files in Windows Explorer origin.txt ``` one two three ``` new.txt ``` one four five ``` Then I `diff -u origin.txt new.txt > file.patch` which results this ``` --- origin.txt 2013-03-21 15:53:20.062956800 +0700 +++ new.txt 2013-03-21 15:53:29.191869600 +0700 @@ -1,3 +1,3 @@ one -two -three \ No newline at end of file +four +five \ No newline at end of file ``` Then I `patch origin.txt < file.patch` which show errors ``` patching file origin.txt Hunk #1 FAILED at 1. 1 out of 1 hunk FAILED -- saving rejects to file origin.txt.rej ``` How to overcome this? Is this related to Unix and Windows file format? P/S: I'm using CYGWIN_NT-6.1-WOW64 and Windows 7 64bit

Original source