XQuery/安装eXgit
外观
< XQuery
Git 具有许多功能,可在世界各地多个用户更改文件时管理数据。Git 具有查看谁更改了哪些数据以及如何查看差异的工具。eXist 目前尚未提供这些功能。但是,Git 没有标准的 REST 接口。
注意:这只是一个工作正在进行中。尚未完成!我们希望将来能够提供打包工具和易于安装的 .xar 文件。
eXgit 的软件存储在 Github 上,这里
https://github.com/shabanovd/eXgit
此软件依赖于 Github 上的 Git Java 库,这里
https://github.com/eclipse/egit-github
你需要构建这个项目,但你只需要一个 jar 文件
org.eclipse.jgit.jar (Note, this is a 1.7MB file)
为了构建它,我从 Github 下载了 zip 文件,并执行了 “mvn install”。我遇到了错误,所以我不得不使用 Maven 构建,并且不进行测试
mvn install -Dmaven.test.skip=true
拥有这两个 jar 文件后,你可以将它们放到 $EXIST/lib/user 中
eXgit-0.3.0.jar org.eclipse.jgit.jar
现在你可以构建 “xar 文件
$ ant
这将在 build/eXgit-0.2.2.xar 中生成一个(大约 1.6MB,包含两个 jar 文件)
然后你可以将它加载到你的 eXist 仪表盘中。
注意,由于某种原因,jar 文件无法正常工作。我们删除了 exist.xml 和构建文件中对它们的引用,并将它们手动复制到了 $EXIST_HOME/lib/user 区域。
注意,现在 .xar 文件的大小约为 2K!
你必须有一个本地 git 检出。
将它用作你的导入语句
import module namespace git="http://exist-db.org/git";
要测试它,你可以克隆任何 git 存储库。例如,以下操作将复制 /db/exide 中的 eXide 项目。
xquery version "1.0";
import module namespace git="http://exist-db.org/git";
git:clone("https://github.com/wolfgangmm/eXide.git", "/db/exide", "", "")
在运行此测试后,你将注意到在 /db/exide/.git 中创建了一个 .git 文件,其中包含所有 git 管理文件
import module namespace git="http://exist-db.org/git";
let $git-checkout-dir := 'd:\ws\exist'
return
<testcase name="status" classname="http://exist-db.org/git">
{git:status($git-checkout-dir, '', false())}
</testcase>