【问题标题】:How to apply a diff file for a folder, using patch, on a different folder when full path is present?当存在完整路径时,如何使用补丁在不同文件夹上为文件夹应用差异文件?
【发布时间】:2011-07-15 03:34:22
【问题描述】:

我下载了一个 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 文件更新的项目目录的本地副本当然位于不同的完整路径中。

我不知道将差异文件放在哪里(或者更确切地说,当我运行patch 时,我将自己放置在哪个目录中)以及要运行什么命令。

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

patch -i patchfile

... 会工作的。它没有(相反,patch 会提示我每个文件,因为它无法找到它)。

我应该发出什么命令来使用patch 合并差异文件?

【问题讨论】:

    标签: linux diff patch


    【解决方案1】:

    传递-p,后跟适当数量的路径前缀以进行剥离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-28
      • 2014-12-21
      • 2021-09-18
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多