创建补丁的工具,用于修改/添加目录结构中的文件

创建补丁的工具,用于修改/添加目录结构中的文件

我有一组文件需要应用一组更改。

在这种情况下,我有一个 Java 应用服务器(通过 zip 文件分发),我需要将一组已知配置应用于该服务器,并将一些 jar 插件添加到特定文件夹。我不想简单地创建预先修改的自己的分发版 - 我想只打包更改的文件,并使它们适用于原始安装。

创建这样的变更集并将相同的变更集应用到别人的计算机上的最简单的工具是什么?

理想情况下,该工具无需在用户计算机上安装任何东西即可运行。工作流程如下:

  1. 下载包含要修改的应用程序的二进制分发的原始 zip 文件
  2. 将该应用程序解压到任意自定义位置。可能是 C 盘根目录下的文件夹,也可能是桌面
  3. 下载包含一组更改的文件(也可能是实用程序)
  4. 将更改集应用到目录

某种可以自动和手动两种方式运作的方法将是最佳的。

我不想设置某种服务器来托管补丁。我可以安装一个工具来创建补丁,只要我不需要在目标机器上安装任何东西来应用补丁即可。

我考虑过简单地创建一个带有子目录的 zip 文件。我不确定检测差异并仅压缩更改内容的最简单方法是什么。我想要一种万无一失的方法,不需要大量手动步骤(进行差异比较并手动挑选更改内容太容易出错)。

实现最小尺寸很好,但这不是必需的。

答案1

经典的工具集是上下文diffpatch。 看到十分钟指南

答案2

就我的目的而言,由于更改很小,因此创建包含替换文件的 zip 文件比创建补丁更简单。这样我就不必处理 p 级别了。

去做这个,我使用了 Beyond Compare,选择更改的文件,将它们复制到同名目录(具有不同的父路径),然后压缩该同名目录。

要应用它,我只需将其解压到现有文件之上,然后全部替换。

这不会检测更改是否有效,与 RedGrittyBrick 的答案不同,它将检测到这一点,但它更容易理解,并且更适合我的场景。

事实证明我并不需要自动化这个过程。如果你需要,可以通过批处理文件运行 diff 工具,生成要压缩的文件列表,然后使用命令行 zip 实用程序存储结果。

相关内容