windows - 如何在linux上应用windows SVN制作的diff?

标签 windows linux svn diff patch

在 Windows 上,我创建了一个多文件差异:

svn diff > mydiff.diff

然后将它移动到 linux 机器上(使用相同版本的相同 repo,没有变化)。我怎么应用它?执行后

 patch -p0 < mydiff.diff

我得到以下输出:

patching file licstat/test/unittest/test_licstatactioncontainers.cpp
File licstat/test/unittest/test_licstatactioncontainers.cpp is not empty after patch, as expected
patching file licstat/test/unittest/test_licstatactions.cpp
Hunk #1 FAILED at 99.
1 out of 1 hunk FAILED -- saving rejects to file licstat/test/unittest/test_licstatactions.cpp.rej
can't find file to patch at input line 295
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: licstat/test/unittest/test_licenseserverusagemap.cpp
|===================================================================
|--- licstat/test/unittest/test_licenseserverusagemap.cpp       (revision 6767)
|+++ licstat/test/unittest/test_licenseserverusagemap.cpp       (working copy)
--------------------------
File to patch: 

最后一行提示等待我的操作。

我应该如何创建/应用补丁以使其工作?

(edit) 现在我明白了,文件丢失了,diff 没有创建它。手动创建文件后,出现如下错误:

patching file licstat/misc/generic/mysql/stored_procedures.sql
Hunk #1 FAILED at 220.
Hunk #2 FAILED at 245.
Hunk #3 FAILED at 622.
Hunk #4 FAILED at 661.
Hunk #5 FAILED at 810.
Hunk #6 FAILED at 822.
Hunk #7 FAILED at 868.
Hunk #8 FAILED at 999.
8 out of 8 hunks FAILED -- saving rejects to file licstat/misc/generic/mysql/stored_procedures.sql.rej

最佳答案

如果您在 Linux 上的文件中有 CR+LF 换行符,则使用“dos2unix”将无济于事。

此命令应使用换行符的任意组合来完成工作:

patch -p0 -l --binary < patch.diff

关于windows - 如何在linux上应用windows SVN制作的diff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164095/

相关文章:

c - C 可变参数是否使用名为 'end' 的关键字?

windows - 批量删除文本文件中的重复行

php - PHP 中的 "exec(' sh foo.sh ')"不工作

python - 远程目录列表 Python WSGI

.net - 版本控制中的项目结构 - .NET 特定

visual-studio - 在 SVN 和 VS.Net 中重命名文件夹

c++ - 远离 Windows\C++ 中的虚拟内存

c - 使用不在 System32 中的 DLL

linux - 将 celery 设置为守护进程服务时出现问题

Excel VBE 导出不一致