如何将新文件包含到补丁中

如何将新文件包含到补丁中

我尝试按照介绍制作补丁这里
假设我有两个目录pp1(modified version),我使用以下命令pp0(clean version)创建一个补丁文件:pp0.patchdiff

 diff -crB pp0 pp1 > pp0.patch

问题是如果只有 pp1 中有一个文件,它不会包含在补丁中。如何解决这个问题?

更新
我先进入pp0目录,测试一下补丁是否成功

  patch --dry-run -p1 -i /path-to-pp0.patch

虽然我已经添加--new-file到命令中diff,但那些仅pp1在结果中没有列出

更新:
我不小心修补了错误的文件,所以

  diff -crb --new-file pp1 pp0 > pp0.patch

或者

  diff -crNb pp1 pp0 > pp0.patch

会做

答案1

您应该能够使用--new-fileswitch 来做到这一点。取自差异手册页:

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

尝试这个:

diff -crB --new-file pp0 pp1 > pp0.patch

答案2

直接答案:diff -N, 作为由普茨科解释。您会发现很多补丁都是由diff -urN.

什么可以让你的生活变得更好:开始使用版本控制工具。如果您不知道,请从三个主要的之一开始分布式修订控制系统,市场,git或者水银。签入干净版本,工作,根据需要多次签入您的工作,并向版本控制系统询问干净版本和您的工作之间的差异。

相关内容