我可以使用`diff -r`告诉我其中一个树中的文件在另一个树中发生了变化吗?

时间:2009-07-10 16:48:44

标签: diff

我想生成一个树中同样位于另一个树中的文件的摘要,这些文件已在第二个树中修改过。

用例是这样的:我有一个产品分发版,其中包含Web内容文件。然后将这些文件导入到特定于客户端的项目中,并可以从那里进行修改。我现在想要查看特定于客户端的项目中自导入prduct以来已更改的所有文件,因此我可以更新产品,并保留特定于客户端的更改。

我认为这样的事情可能会起作用

diff -r productDistribution/WebContent clientProject/WebContent

但是,客户特定项目中有许多文件不在产品分发中,我在这个过程中并不关心。从本质上讲,我想用SQL术语中的“外连接”。

理想情况下,我希望能够创建包含所有特定于客户端的更改的修补程序。然后,我可以覆盖新的产品文件,并应用补丁,我应该全部设置。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,diff只为每个只在其中一棵树中的文件打印一行,因此很容易过滤掉这些:

diff -r productDistribution/WebContent clientProject/WebContent | \
    grep -v 'Only in clientProject'