Skip to content
Gordon Heydon edited this page Aug 24, 2026 · 3 revisions

mv_git — record-git for MultiValue

mv_git puts a MultiValue account under real version control. It is git for hash-file records: the account's own records, dictionaries and VOC are read and written directly to and from git objects in the account's .git, so the live account is the working tree. There is no export copy to keep in step.

Current release: 2.0.0 — see the release notes for everything since 1.6.1.

Two ways to drive it

Every platform gives you both, and since 2.0.0 they commit identical bytes, so it does not matter which one made a commit:

In a session GIT STATUS, GIT ADD -A, GIT COMMIT -m "..." — a verb, cataloged in the account
From the shell udt-git status, uv-git add -A, mvx-git commit -m "..." — a drop-in for git

The CLIs take the same subcommands, flags and argument order as stock git, so existing habits and scripts carry over.

Platforms

Platform CLI Install guide State
Rocket UniData udt-git Installing on UniData Supported
Rocket UniVerse uv-git Installing on UniVerse Supported
MVX mvx-git Installing on MVX Supported
jBASE jb-git In development (#114), expected in 2.1

The same engine is compiled for each; only the record layer differs.

Where to go next

Try it without installing anything into your own data

There is a demo account built for exactly this — clone it, break it, throw it away:

$ udt-git clone https://github.com/mvx-lang/demo.git mydemo

A fresh clone reads clean (status reports nothing) through both the CLI and the verb. If yours does not, that is a bug worth reporting.

Open account format

An account is exchanged between platforms in a backend-neutral open account format, opt-in per repository via mvx.openaccount — the core.autocrlf analogue. A UniData account committed in the open form rebuilds as a live UniVerse or MVX account, and vice versa. See Git structure of an account.

Licence and source

GPL-2.0-only. Source, releases and issues: github.com/mvx-lang/mv_git.

Clone this wiki locally