2010-10-28 75 views
4

是否可以通过diff和patch添加完整的目录?通过diff和patch添加完整的目录

在标准代码库的基础上添加额外的模块似乎是非常方便的方法。

我使用了一些解决方案,但它们通常在文件级别上工作,而不是在目录级别上。

谢谢。

+0

您刚刚尝试使用修补程序“在子文件夹中创建”文件吗? – levu 2010-10-28 18:15:13

+0

这是工作,但我需要创建一个完整的目录结构。 – SyBer 2010-10-28 18:37:27

回答

3

回答自己:

DIFF -urPp old_dir/NEW_DIR /> new_module.patch

似乎这样的伎俩。

+1

谢谢!正是我想要的。如果它帮助别人,可以使用'--exclude = PATTERN'来排除CVS目录之类的东西,并且可以使用'patch -p1 spacemanaki 2011-06-06 16:46:05

2

两个快速的建议 - 这些都应有助于

  1. 您需要的标志-r | --recursive

  2. 你可能还需要--unidirectional-new-file-N | --new-file

因为我已经在这里完成了您的想法。

+0

谢谢,它似乎也工作,虽然-P给予更多的控制,以防止意外错误。 – SyBer 2010-10-28 18:39:37

+0

是的,我尽力帮忙。我在家里有样本调用,可能更接近你最终结果。排除CVS/SVN也很有用。 – 2010-10-28 18:41:58

0

下面的步骤将工作

  1. 以旧的源代码和源代码之间的补丁(新文件+新目录) 差异-urPp old_src new_src> new.patch
  2. 创建一个临时目录 的mkdir临时
  3. 复制原来旧的源代码目录到临时目录 CP -r old_src临时
  4. 复制补丁文件到临时目录中创建 CP new.patch临时
  5. 改变目录 CD临时
  6. 应用补丁 补丁-p0 < new.patch

现在所有的补丁将应用于文件更改+新文件+目录添加在临时目录中