我正在尝试使用 diff 创建补丁,但我无法让补丁在创建新文件时使用文件中使用的行尾字符或在文件更改时更改行尾。基本上,我在做:
cp -r dir1 dir3
diff -ruN dir1 dir2 > dir3\patch.txt
cd dir3
patch -p1 < patch.txt
dir1
和之间的所有更改都dir2
正确应用,除了新文件的行尾字符默认为CR+LF
,即使文件dir2
用作LF
行尾标记。此外,它们之间的差异只是行尾更改的任何文件都不会以任何方式修补 - diff 似乎没有看到任何更改。
所以运行diff -rq dir2 dir3
会产生一堆Files aaa and bbb differ
,但diff -rwq dir2 dir3
工作正常。
我在 Windows XP 上使用diff - GNU diffutils version 2.7
和patch 2.5
从。UnxUtils
有什么方法可以使补丁中包含的新文件和更改的文件保持从原始文件结束的行?