OXYGENHUB

Release 0.3.0 (refs #58) bea00d4177c6

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-10-02 12:00 UTC
Signature
✔ signed by Andy McCall
Hash
bea00d4177c6cb0c0ab46f2ea2ca672b3cabe1549cb31156e15246841bc755f8
Depends on
750251b21a96 8fd78eb52ad2 b0461604ed98 b35df36b7dc5 c07406bcc237 ff0af1ee299d
Depended on by
6a0008781d5e a46f3e4f50b1
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.10.0 v0.11.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
8 atoms, 0 tree operations, 3 files

Browse the tree at this change

modified CHANGELOG.md +10 −0
…
1 unchanged lines
2 2
3 3
## Unreleased
4 4
5 +
## 0.3.0 (2026-10-02)
6 +
5 7
- **Fetch says when a bookmark is behind (#56).** `oxy fetch` reports each bookmark against the remote's copy ("main is 1 change behind: oxy pull to take it", ahead, diverged) and says "up to date" only when they match; `--json` gives `ahead` and `behind`. A change that was fetched but not pulled resolves by id or hash, and `oxy show` says it is only in `origin/main`. With one remote not called `origin`, fetch, pull and push use it, and `bookmark list` and the prompt count against it.
8 +
9 +
- **Clones record local paths absolute (#57).** `oxy clone ../repo copy` and `oxy remote add NAME ../repo` store the absolute path, so fetch, pull and push still find the remote from inside the clone.
10 +
11 +
- **Faster commits (#41).** A commit writes the manifest once, its own snapshot neither records an operation nor encodes the change twice, syncs are batched, and edited files are diffed on every core: a one-file commit on the Linux tree takes 0.3 to 0.5 s (from about 3 s; Git 0.15 s, which does not sync), 1 000 files 0.8 s (from 4.9 s).
12 +
13 +
- **First commit of a large tree in half the time and less memory (#41).** The Linux tip commits in 12 to 17 s (from 38 s; Git 32 s), peaking at 2.6 GB resident (from 4.4 GB): line offsets take four bytes, inline lines are encoded without a value each, stored texts go at most 32 MiB a batch, and `oxy commit` (and describe, amend, abandon, split, squash, rebase) read only the new change's metadata to print it.
14 +
15 +
- **Diff and fsck (#41).** A diff answered from the status cache renders only the files it shows (one file on the Linux tree 0.15 s, from 1.2 s; 1 000 files level with Git), and fsck checks objects in parallel (8 to 10 s, Git 12 to 13 s).
6 16
7 17
- **Blame twice as fast (#41).** `oxy blame` prints through a buffered writer and formats each change once, and the state index's tree view loads in one step: blame of the Linux tree's MAINTAINERS (30 000 lines) is 0.08 s, from 0.16 s; tuned Git 0.06 s. The faster tree view also takes 16 ms off diff, commit and checkout.
8 18
…
59 unchanged lines
modified Cargo.lock +3 −3
…
1246 unchanged lines
1247 1247
1248 1248
[[package]]
1249 1249
name = "oxy"
1250 -
version = "0.2.0"
1250 +
version = "0.3.0"
1251 1251
dependencies = [
1252 1252
 "anyhow",
1253 1253
 "clap",
…
10 unchanged lines
1264 1264
1265 1265
[[package]]
1266 1266
name = "oxy-core"
1267 -
version = "0.2.0"
1267 +
version = "0.3.0"
1268 1268
dependencies = [
1269 1269
 "blake3",
1270 1270
 "ed25519-dalek",
…
17 unchanged lines
1288 1288
1289 1289
[[package]]
1290 1290
name = "oxy-server"
1291 -
version = "0.2.0"
1291 +
version = "0.3.0"
1292 1292
dependencies = [
1293 1293
 "axum",
1294 1294
 "axum-server",
…
1267 unchanged lines
modified Cargo.toml +1 −1
…
2 unchanged lines
3 3
resolver = "2"
4 4
5 5
[workspace.package]
6 -
version = "0.2.0"
6 +
version = "0.3.0"
7 7
edition = "2021"
8 8
license = "MIT OR Apache-2.0"
9 9
…
26 unchanged lines