【问题标题】:How to apply patch probably created with diff -r command?如何应用可能使用 diff -r 命令创建的补丁?
【发布时间】:2012-08-10 08:52:56
【问题描述】:

到目前为止,我在 Linux 上创建了以下补丁:

diff -rupN oldDir newDir > fix.patch

并用这个(来自 oldDir)应用它们:

patch -p1 < fix.patch

现在,我需要做一个别人创建的补丁,当我尝试这个方法时,我得到:

patch: **** Only garbage was found in the patch input.

我不确定这个补丁是如何生成的(它有 .diff 扩展名)。补丁文件的部分内容是:(只是更改了一些文件/文件夹名称)

Only in ../oldDir: someFile1.a
diff -r ../oldDir/someFolder1/SomeFile3 ./someFolder1/SomeFile3
10c10
< #someContent1 
---
> #someContent1
Only in ../oldDir/someFolder1/someFolder2: someFile2.a
diff -r ../wfd_oldDir/someFolder1/someFolder2/someFile3 ./someFolder1/someFolder2/someFile3
2c2
< ##### Change the following for your environment: 
---
> ##### Change the following for your environment:
15,16c15,16
< LIBRARY_LINK =        ar cr 
< LIBRARY_LINK_OPTS =   
---
> LIBRARY_LINK =        ar cr
> LIBRARY_LINK_OPTS =
36c36
<   $(C_COMPILER) -c $(C_FLAGS) $<       
---
>   $(C_COMPILER) -c $(C_FLAGS) $<

.......(继续).......

如何应用此补丁?

【问题讨论】:

    标签: linux diff patch


    【解决方案1】:

    检查 unix/windows 行尾

    【讨论】:

    • ... 行尾,或其他字符编码问题。例如,以 UTF-16 编码的补丁将不起作用。
    • 我会检查这个,但我尝试使用“diff -r oldDir newDir”(在 Linux 中)制作一个测试补丁,但我仍然收到此消息。是否可以应用这样创建的补丁?
    • 赞成票:你说得对,有 windows 换行符,但补丁正在做这件事:它删除 windows 换行符...有什么建议吗?
    • 尝试从补丁中删除windows新行,看看是否有效
    猜你喜欢
    • 2020-08-13
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多