当前位置:  开发笔记 > 编程语言 > 正文

如何阅读.rej文件,即

如何解决《如何阅读.rej文件,即》经验,为你挑选了3个好方法。

我在修补我的源代码树时遇到了问题,这不是通常的-p剥离问题.patch能够找到要修补的文件.

具体来说,我的问题是如何读取/解释.rej文件patch创建时几个帅哥失败.patch/ diff我见过的大多数讨论都不包括这个.



1> Bodo Thiesen..:

一个简单的例子:

$ echo -e "line 1\nline 2\nline 3" > a
$ sed -e 's/2/b/' b
$ sed -e 's/2/c/' c
$ diff a b > ab.diff
$ patch c < ab.diff
$ cat c.rej
***************
*** 2
- line 2
--- 2 -----
+ line b

如您所见:旧文件包含第2行,新文件包含第b行.但是,它实际上包含行c(在拒绝文件中不可见).

事实上,解决此类问题的最简单方法是从.diff/.patch文件中获取diff片段,将其插入要修补的文件中的适当位置,然后手动比较代码,找出哪些行实际上导致冲突.

或者 - 或者:获取原始文件(未修改),修补它并在文件上运行三向合并.



2> zr...:

当补丁不成功时,Wiggle是一个很好的应用.rej文件的工具.



3> Mugshep..:

我不是处理补丁文件的专家,但是我想根据我对它们包含的信息的理解来增加一些阅读方式。

您的.rej文件将告诉您:

原始文件与.rej文件之间的区别;

问题代码在原始文件中的起始位置,在该文件中将持续多少行;

以及代码在新文件中的开始位置,以及在该文件中要执行多少行。

因此,鉴于此消息,请在我的.rej文件的开头注明:

diff a/www/js/app.js b/www/js/app.js (rejected hunks) @@ -4,12 +4,24 @@

我发现对于我的问题文件(www/js/app),原始a/www/js/app.js文件(记为第一行)和.rej文件(记为b/www/js/)之间的区别从原始文件的第4行开始,持续12行(逗号在第二@@ -4,12, +4,24 @@行),并从新版本文件的第4行开始,并持续24行(在逗号后面的部分)@@ -4,12, +4,24 @@

有关更多信息,请参见http://blog.humphd.org/vocamus-906/上的补丁文件(包括我上面提到的信息以及添加的行和/或文件版本之间的详细信息)的出色概述。

当然,任何更正或澄清都欢迎。

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有