如何在exists-db中获取两个版本之间的差异

时间:2016-02-16 05:07:14

标签: exist-db

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

我在exists-db中启用了版本控制并上传了一个json文件并对该文件进行了一些更改。现在版本下有两个版本的文件。我如何获得/列出两个版本之间的差异

1 个答案:

答案 0 :(得分:1)

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

版本控制模块在eXist 2.2之后被删除,因为它被发现包含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文档。