git 2.0.1
mv_git 2.0.1 — a maintenance release for 2.0.0, plus adopt on every shipping CLI.
Two of these matter to anyone already running 2.0.0 on UniData.
Fixed
The account descriptor is a file only on MVX (#122). desc_native_name() existed
because the name differs per platform — .mvx, .udt, .uv — but only the two places that
read it asked for the name. The four that wrote or matched it spelled ".mvx"
outright, so every platform wrote MVX's descriptor into the account.
On UniData that meant every cloned account carried a stray .mvx in a spelling its own
reader never opens. It was not merely untidy: it was load-bearing. Materialise wrote it, the
walk staged it as an ordinary file, and the open-form conversion turned that into the
committed .mv-account — so simply deleting it stopped the indicator travelling and a fresh
clone reported M .mv-account with nothing to fix. This removes the stray and replaces
the mechanism, synthesising the indicator instead.
UniVerse's .uv is gone from disk too. It carried the VOC flavour, which cannot be asked
for after an account is created — that now lives in the git objects, where GIT ATTR can
edit it.
The package manifests declare what was released (#119, #120). The published 2.0.0
tarball still said 2.0.0-rc5 internally, so MVPKG would install the stable release and
then report a release candidate. The version is now stamped from the tag at build time by
every packaging path, so it cannot drift again. systems also declares uv, since UniVerse
shipped in 2.0.
Added
adopt on every shipping CLI (#124). adopt turns a plain-git checkout into a live
account — git gives you files, this gives you an account. Only uv-git had one, and its
version predated the rest.
- It takes the data from disk. Ninety-nine times in a hundred a checkout matches HEAD;
when it does not, somebody edited a record and expects their edit in the account. The
working tree is stashed (git stash push -u -- ., so the work stays recoverable and
scoped to the account), and the stash's tree is materialised — never popped, which would
write the open form back over a native account. - It asks the right question. An open-form checkout whose repository lacks the flag is
offered the flag; a checkout native to another MV system is offered conversion,
and declining still adopts; one already native here is asked nothing. - It is scoped to the account.
git add -Astages the whole worktree wherever it runs,
so adopting one account of a multi-account repository used to capture the others.
Upgrading
Unpack over a fresh directory and run ./install.sh. Accounts keep their repositories.
A UniData account cloned with 2.0.0 has a stray .mvx in it; it is inert and can simply be
deleted.
Verified
| suite | |
|---|---|
| MVX | 97 passed, 0 failed |
| UniData | 95 passed, 0 failed |
| UniVerse | 93 passed, 0 failed |
Issues closed since 2.0.0
jBASE is in development (#114) and expected in 2.1.