首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >补丁语义

补丁语义
EN

Stack Overflow用户
提问于 2013-02-12 21:36:06
回答 1查看 360关注 0票数 0

我已经用diff做了一个补丁

代码语言:javascript
复制
diff -u /home/user/onderzoeksstage/omf/Rakefile /home/user/onderzoeksstage/Rakefile > rakefile2.patch

我将这个rakefile2.patch放在另一个目录中:/home/user/onderzoeksstage/omf/confine/patches。现在,我假设我可以转到收集所有补丁的目录,调用patch < rakefile2.patchpatch将通过读取rakefile2.patch头文件知道哪里可以找到要打补丁的文件(原始文件/home/user/onderzoeksstage/omf/Rakefile)。

但是当这样做的时候,patch说它没有找到要修补的文件:

代码语言:javascript
复制
[user@localhost patches]$ patch < rakefile2.patch 
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- /home/user/onderzoeksstage/omf/Rakefile    2013-02-12 14:11:49.809792527 +0100
|+++ /home/user/onderzoeksstage/Rakefile    2013-02-12 12:17:50.314831492 +0100
--------------------------
File to patch: ...
...

所以我的假设显然是错误的,但是patch是如何工作的呢?当转到/home/user/onderzoeksstage/omf/并调用patch < rakefile2.patch时,确实可以工作。patch是否只查看路径末尾的文件名的标题,而不考虑目录?所以我想要实现的东西永远不会成功?为什么会这样;这是因为补丁可以应用于任何名为Rakefile的文件(例如,在我的例子中),从而使其成为更“通用”的补丁?

谢谢,格伦

EN

回答 1

Stack Overflow用户

发布于 2013-02-12 21:41:11

补丁是否只查看路径末尾的文件名的头部,而不考虑目录?

这就是它默认做的事情。请参阅man patch-p选项的说明。看起来-p0就是你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14833818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档