存在完整路径时,如何使用补丁将文件夹的差异文件应用于其他文件夹?
收藏

我下载了一个diff文件来修改版本化项目目录(xerces 2.8)中的许多文件。diff文件包含每个“左”文件(由-符号表示的文件)的完整路径。“右”文件(+符号)包含相对路径。例如:

--- /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_xercesc/work/xerces-c-src_2_8_0/src/xercesc/util/Platforms/MacOS/MacCarbonFile.cpp  2007-08-28 20:44:07.000000000 +0200
+++ src/xercesc/util/Platforms/MacOS/MacCarbonFile.cpp  2009-10-28 19:37:22.000000000 +0100

当然,我要用diff文件更新的项目目录的本地副本位于不同的完整路径。
我不知道在哪里放置diff文件(或者更确切地说,当我运行patch时,在哪个目录中放置我自己)和运行什么命令。
因为第二个(+)文件是一个相对路径,所以我认为将自己定位在本地文件系统中的正确位置,这样相对路径就正确了,然后发出命令
patch -i patchfile

…会有用的。它不会(相反,patch为每个文件提供提示,因为它找不到它)。
要使用patch将diff文件合并,应该发出什么命令?


最佳答案:

pass-p后跟要删除的路径前缀的适当数目。

公众号