题
我有麻烦用一个补丁我源树,这是不平常的 -p
剥离问题。 patch
是能够找到的文件,以修补程序。
具体地说,我的问题是如何阅读/解释 .rej
文件 patch
创建时,它无法在几个帅哥.大多数的讨论 patch
/diff
我已经看到不包括这一点。
解决方案
一个简单的例子:
$ echo -e "line 1\nline 2\nline 3" > a
$ sed -e 's/2/b/' <a >b
$ sed -e 's/2/c/' <a >c
$ diff a b > ab.diff
$ patch c < ab.diff
$ cat c.rej
***************
*** 2
- line 2
--- 2 -----
+ line b
正如你所看到的:旧的文件包含线2和新文件的应的含有B线。但是,它实际上包含线c(这是不可见的拒绝文件)。
在实际上,要解决这样的问题的最简单的方法是用手工取DIFF片段从为.diff / .patch文件,在该文件中的适当位置插入它要修补,然后比较代码弄清楚什么线实际上会导致冲突。
或者 - 或者:获取原始文件(未修改),打补丁和运行三通上的文件合并
其他提示
摆动是用于应用名为.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
在第一线)。抑制的文件(指出的作为 b/www/js/
)开始在线4的原始和继续为12线(第一部分之前的逗号 @@ -4,12, +4,24 @@
在二线),并启动在线4的该文件的新版本,并继续为24行(第一部分之后的逗号 @@ -4,12, +4,24 @@
.
关于进一步信息,请参见卓越的概述,补丁文件(含的信息,我注意到上面,以及详细信息上线,加入和/或之间的文件版本)在 http://blog.humphd.org/vocamus-906/.
任何修改或澄清欢迎的课程。