是否可以使用diff和patch工具来实现所需的结果?

时间:2016-11-03 09:39:58

标签: unix diff patch

我有一个目录D-1.0.3和D-1.0.5,其中包含文件A和B(以及Dx.xx中的其他子目录和文件)以及文件A和B的以下版本树(类似于版本控制) ,还有其他子目录和文件)

1.0.3 - 1.0.5

|

1.0.3.1(头)

我想使用diff和patch工具将更改从1.0.5应用到1.0.3.1,因为我无法访问与文件关联的git或svn工具。

这是否可以使用统一的diff格式(或其他)?如果可能的话我怎样才能实现(我需要执行的命令集)?

我已检查过没有添加,删除或重命名与更改相关联的文件名。

非常感谢!

1 个答案:

答案 0 :(得分:0)

是的,您可以使用<li class="page-item"><a class="page-link" href="#">3</a></li> 来捕获两个目录树之间的差异。有一些陷阱:

  • 如果您有文件(不在旧树中),则应使用diff选项
  • 如果添加或删除目录,-N将不会告诉您这些目录中的文件。我使用Perl脚本diff(比CPAN更旧的版本)可以解决这个问题。

对于简单的情况(没有添加/删除目录),您将使用

makepatch

我会将它应用于要修补的目录的顶层,

diff -Naur olddirectory newdirectory >myfile.diff

消除由于该目录的实际名称而导致的问题。 patch -p1 < myfile.diff 选项会丢弃顶级目录的名称。

总结一下,假设这些是您的目录的名称,当前目录的所有子目录:

-p1