svn - 压缩 xml 文件的 Subversion 差异

标签 svn diff zip meld

我正在使用 MySQL Workbench 来维护应用程序的数据库架构。 .mwb Workbench 使用的文件是一个压缩的 XML 文档,保存在 Subversion 存储库中。

该文件被 Subversion 视为二进制数据,因此我无法使用 svn diff显示更改,例如在提交之前。

由于数据实际上是 XML,我认为无论如何可能有某种方法可以显示差异,可能是一些之前解压缩文件的脚本,或者一些插件到 svn diff .

理想的解决方案将允许:

$ svn diff db-model.mwb

甚至使用 Meld:
$ meld db-model.mwb

你能想到什么方法来实现这一点?也许其他人遇到过在 Subversion 中显示存档文本文件差异的问题。

最佳答案

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

Subversion 将拒绝在 checkin 时检测为“二进制”的差异文件。“--force”选项允许您覆盖此检查,因此即使输入文件已 checkin ,您的包装脚本也会运行作为二进制文件。

关于svn - 压缩 xml 文件的 Subversion 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361059/

相关文章:

svn - 您可以 `svn status`代替本地工作副本吗?

linux - 源树差异摘要信息

SVN 跨 2 个不同存储库的差异

C# 访问 zip 存档中的文本文件

python - 循环并加载 yaml 文件的压缩文件夹

svn - Subversion - 任何人都应该在主干之外进行开发吗?

SVN Firefox插件

linux - 在 Linux/Ubuntu 上的 Subversion 中提交更改的文件、添加新文件并省略一些文件到外部服务器

linux - Git:提交前快速查看差异

PHP file_get_contents() : content truncated from 2147483648 to 2147483647 bytes