压缩xml文件的Subversion diff

Osk*_*kar 10 svn diff zip meld

我正在使用MySQL Workbench来维护应用程序的数据库架构..mwbWorkbench使用的文件(压缩的XML文档)保存在Subversion存储库中.

Subversion将文件视为二进制数据,因此我不能用于svn diff显示更改,例如在提交之前.

由于数据实际上是XML,我认为可能有一些方法可以显示差异,也许是一些先解压缩文件的脚本,或者是一些插件svn diff.

理想的解决方案将允许:

$ svn diff db-model.mwb
Run Code Online (Sandbox Code Playgroud)

甚至使用Meld:

$ meld db-model.mwb
Run Code Online (Sandbox Code Playgroud)

你能想到什么方法来实现这个目标?也许其他人有这个问题,在Subversion中显示存档文本文件的差异.

Jim*_*wis 8

Subversion允许您使用外部差异工具.您可以做的是编写一个包装器脚本,并告诉Subversion将其用作"diff"命令.您的包装器将解析它从Subversion获取的参数,以选择"左"和"右"文件名,对它们进行操作,并返回Subversion将其解释为成功或失败的错误代码.在您的情况下,包装器可以解压缩XML文件,并将解压缩的结果传递给"diff"或您选择的其他工具.

Subversion将在检查时检测为"二进制"的文件不一致." - force"选项允许您覆盖此检查,因此即使输入文件已签入,您的包装器脚本也将运行作为二进制文件.