如何获得 exist-db 中两个版本之间的差异

How to get the difference between two versions in exist-db

我正在尝试使用 exist-db 进行版本控制。有没有办法列出差异?

我在 exist-db 中启用了版本控制并上传了一个 json 文件并对文件进行了一些更改。现在版本下有两个版本的文件可用。我如何get/list两个版本的区别

"versioning" 前缀命名空间中有一个 XQuery 模块,允许您对版本执行各种查询。

在 eXist 2.2 之后版本控制模块已从 eXist 代码库中删除,因为发现它包含 GPL 许可代码,这与 eXist 的 LGPL 许可不兼容。

现在可以在此处找到版本控制模块的代码:https://bitbucket.org/zwobit/versioning/src/7e177a5f3cf8ad6980a502eb5a0c20cf136e7a7c/src/main/java/org/exist/versioning/xquery/?at=develop

如果您查看 versioning.xqmDiffFunction.javaPatchFunction.java,您可以看到可供您从 XQuery 调用的函数。

不过据我所知,您无法在 JSON 文档之间获得差异,因为 eXist 仅提供 XML 文档的差异。相反,版本控制模块将 JSON 文档视为二进制文件,因此是不可变的,对文档的每次更改都会生成一个全新的文档(这可能是您需要的)。

没有什么可以阻止您从 XQuery(通过进程模块)调用 GNU diff 并通过它传递两个 JSON 文档。