Linux 编辑已存在的修补程序文件
使用编辑器编辑Linux 编辑已存在的修补程序文件,linux,git,patch,yocto,Linux,Git,Patch,Yocto,使用编辑器编辑.patch是否是标准做法 脚本 我在Yocto应用程序中使用.patch,我希望对存储库进行一些小的更改,并将其移植到我的嵌入式设备 其中一个补丁如下(为brewity删除了一些细节): 而现在,在几次承诺之后,它就没有了 据我所知,目前的补丁将无法工作,因为它将寻求首先找到行号和内容删除,但将通过错误,因为它将无法找到上述shebang在文件中了。 (已经试过了) 可能的方式 一个明确的方法是使用更新的代码克隆存储库,并将所需的shebang(env php而不是php5)添
.patch
是否是标准做法
脚本
我在Yocto应用程序中使用.patch
,我希望对存储库进行一些小的更改,并将其移植到我的嵌入式设备
其中一个补丁如下(为brewity删除了一些细节):
而现在,在几次承诺之后,它就没有了
据我所知,目前的补丁将无法工作,因为它将寻求首先找到行号和内容删除,但将通过错误,因为它将无法找到上述shebang在文件中了。
(已经试过了)
可能的方式
- 一个明确的方法是使用更新的代码克隆存储库,并将所需的shebang(
而不是env php
)添加到代码中,然后使用php5
获得要恢复的新补丁git format patch-1
使用编辑器编辑补丁是否合理(我很确定不是)?或者是否有一些
git
功能可以帮助直接修改修补程序而不是相应的文件?还有另一种方法可以使用coult refresh
。简而言之,在使用Quilter时,您将把所有补丁复制到名为patches
的目录中(在quiltrc中,这是可配置的)
此修补程序目录中名为series
的文件存储所有修补程序文件名。当您使用应用修补程序时
quilt push
或
您将带着错误退出。假设您有10个补丁,而第三个补丁无法直接应用,因为存储库中已有一些更改
然后你可以打电话
quilt push -f
它将尝试应用所有可能的位置,并存储无法应用到.rej
文件中的行。示例输出
Applying patch patches/0001-To-apply.patch
patching file README.md
Hunk #2 FAILED at 51.
1 out of 2 hunks FAILED -- saving rejects to file README.md.rej
在我的README.md文件中有大块的地方
现在,您可以通过比较原始文件来检查未完全应用的更改。在上述情况下,介于README.md
和README.md.rej
之间。您可以解决失败的位置并调用
quilt refresh
刷新后,patches
中的原始修补程序文件将根据相应的更改进行更新,现在您可以继续使用coult push
或coult push-a
注意:默认情况下,Yocto使用coult,除非使用PATCHTOOL
变量进行更改
quilt push -f
Applying patch patches/0001-To-apply.patch
patching file README.md
Hunk #2 FAILED at 51.
1 out of 2 hunks FAILED -- saving rejects to file README.md.rej
quilt refresh