我的典型的工作过程是这样的:始终无法远程Linux机器上应用SVN补丁
- 退房从主干代码到我的窗口工作机
- 做一些修改(但没有提交SVN )并使用Tortoise SVN的“创建补丁”创建这些修改的补丁。
- SSH登录到远程Linux服务器,并上传修补程序。 linux服务器也检出了主干头。
- 应用补丁的Linux服务器上,如:
[[email protected]:~/work] patch -p0 -i ~/work/fix.patch (Stripping trailing CRs from patch.) patching file src/java/main/myApp/view/action/test/launch/GetPeekAction.java Hunk #1 FAILED at 385. 1 out of 1 hunk FAILED -- saving rejects to file src/java/main/myApp/view/action/test/launch/GetPeekAction.java.rej (Stripping trailing CRs from patch.) patching file src/java/main/myApp/view/action/test/GetAllCustomerAction.java Hunk #1 FAILED at 76. 1 out of 1 hunk FAILED -- saving rejects to file src/java/main/myApp/view/action/test/GetAllCustomerAction.java.rej (Stripping trailing CRs from patch.)
但我始终有像这些错误。我认为这是由于在Windows和Linux上行结束的原因造成的,所以我使用dos2unix转换了修补程序,像(从修补程序中剥离尾随CR)这样的警告消失了,但修补仍然失败。
有一种奇怪的行为,如果文件的修改只发生在现有的行上,则应用修补程序将起作用。但是如果添加了新行,修补程序就会失败。
任何人都知道如何解决这个问题?非常感谢
你有没有使用rsync考虑(见例如http://en.wikipedia.org/wiki/ Rsync#Windows)呢? – 2010-09-18 11:22:23
为什么不使用svn通过http与远程服务器通信的能力? – JoelFan 2010-12-17 11:30:29