开发者

How to apply a diff file for a folder, using patch, on a different folder when full path is present?

I have downloaded a diff file to modify a number of files within a versioned project directory (Xerces 2.8). The diff file contains the full path for each "left" file (the one represented by the - signs). The "right"开发者_JAVA技巧 file (+ signs) contains a relative path. For example:

--- /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

My local copy of the project directory that I'd like to update with the diff file is, of course, at a different full path.

I cannot figure out where to place the diff file (or rather, in what directory to position myself when I run patch) and what command to run.

Because the second (+) file is a relative path, I thought that positioning myself in the proper location in my local file system so that the relative path is correct - and then issuing the command

patch -i patchfile

... would work. It does not (instead, patch presents me with a prompt for each file because it cannot locate it).

What command should I issue to get the diff file to merge using patch?


Pass -p followed by the appropriate number of path prefixes to strip.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜