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>