Geschichte treats compatibility as observable behavior, not merely accepting a subcommand name. Unsupported options must fail before state changes. This file is the implementation manifest for scenario replay and future native-Git differential tests.
| Area | Commands | Current faithful subset |
|---|---|---|
| Repository | init, clone | Muschel virtual mounts and standalone .geschichte/repo.edn physical projections; existing-file import, cwd discovery, origin/branch selection, -n/--no-checkout, HTTP/SSH transport, and direct local path/file: clone; no Geschichte bare projection |
| Native import | ges import-git | normal, bare, and linked-worktree discovery; loose/packed SHA-1 and SHA-256 objects, packed/loose refs, symbolic HEAD, alternates, useful config, safe in-place opt-in |
| Inspect | status, diff, log, show, ls-files, rev-parse, merge-base | common agent forms, short/porcelain-v1 status, two/three-dot revision ranges, history path filtering, name/stat output, formatted log, commit patches, REV:path, and ancestry exit-status checks |
| Stage/commit | add, commit, rm, mv, restore, reset, clean | three-tree local workflow, ignores/force-add, tracked commit -a/-am, path restore/reset, safe clean force policy |
| Refs | branch, switch, checkout, tag, merge | branch start points, lightweight tags, fast-forward and clean two-parent merges; conflicts are reported without unsafe partial mutation |
| Configuration | config, remote | local values/remotes persist in Datahike; host-global values are layered above them |
| Network | fetch, pull, push | one named remote, all advertised refs, fast-forward-only pull, one branch refspec; transport I/O is injected by the host |
| Workspaces | worktree list/add/remove/prune | physical JVM projections and Muschel mounts; named refs, -b/-B, conservative dirty removal, force removal, stale pruning, and multiple isolated checkouts of the same logical ref |
Global --no-pager, --paginate, and repeated -C are parsed before repository
discovery. Git commands are top-level in ges; ges git ... is a transition
alias. The native CLI supplies smart HTTP/SSH operations. An embedded sandbox
must inject a permitted transport adapter; the shared command engine never
silently escapes the host's process/network policy.
Implemented:
HEAD, full logical refs, local branch/tag shorthand;origin/main;HEAD~3, merge^2, HEAD^^.A..B;A...B;HEAD.Next: multiple positive/negative revision operands such as ^REV, reflog
selectors, peel/type suffixes, chronological/topological ordering modes, and
path ambiguity diagnostics matching Git.
--no-checkout preserves a successfully
published repository without materializing its worktree.Every added option needs at least one positive behavior test and one test showing that the closest unsupported spelling is rejected without changing repository state.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |