Joh*_*kel 4 cvs diff patch windows-7
我正在使用CVS和win7.我需要将一些更改从主干复制到分支,所以我想我可以使用"diff -ruN"将更改放入文件中,然后使用"patch -i"将它们应用到分支.
所以我看到了这个页面和这个页面.我已经有了cygwin diff,所以我在这里得到了gnu补丁.我做了两个文件
\test\mydir1\afile.txt
\test\mydir2\afile.txt
Run Code Online (Sandbox Code Playgroud)
有微小的差异.然后我输入
cd test
diff -ruN mydir1 mydir2 >test.patch
patch --dry-run -i test.patch
Run Code Online (Sandbox Code Playgroud)
结果是
can't find file to patch at input line 4
Perhaps you should have used the -p or --strip option?
Run Code Online (Sandbox Code Playgroud)
所以我试过了
patch --dry-run --verbose -p1 -i test.patch
Run Code Online (Sandbox Code Playgroud)
我得到了同样的错误.很长一段时间我尝试了很多其他的事情,没有成功.为什么这么难?
Joh*_*kel 12
好的,这是我需要知道的两件事,但没有记录在任何地方
这有效......
diff -ruN mydir1 mydir2 | unix2dos > test.patch
patch -p0 -i test.patch
Run Code Online (Sandbox Code Playgroud)
您必须转换为DOS行结尾,并且必须指定-p0.否则默认为-p1.我希望这会帮助别人.