当完整path存在时,如何在不同文件夹上使用补丁程序将文件应用于不同文件夹?

我已经下载了一个diff文件来修改版本化项目目录(Xerces 2.8)中的许多文件。 diff文件包含每个“左”文件(由 – 符号表示的文件)的完整path。 “正确的”文件(+符号)包含一个相对path。 例如:

--- /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文件更新的项目目录的本地副本当然是处于不同的完整path。

我找不到放置diff文件的位置(或者更确切地说,在我运行patch时候在什么目录下放置自己)以及运行什么命令。

因为第二个(+)文件是一个相对path,所以我认为将自己定位在本地文件系统的正确位置,以便相对path正确 – 然后发出命令

 patch -i patchfile 

… 会工作。 它不(相反, patch我提供了每个文件的提示,因为它无法find它)。

我应该发出什么命令来获取diff文件使用patch合并?

传递-p后跟适当数量的路径前缀去除。