-
Claim your own commits in a Git import (issue #97).
oxy git import --claimandoxy git fetch --claimsetgit.claim: a commit whose Git author email is your identity's email is authored with your key (and sealed by you on push), so a forge credits it to your account; anyone else's commits keep the zero key, as before. -
Git imports of long histories much faster (issue #96). Rendering a file asks whether the changes that deleted and inserted neighbouring lines depend on each other; in a deep history each answer was a walk through thousands of changes, asked again for every line, under a lock every rendering thread queued on. Answers are now remembered for the file being rendered, the shared memos are read without excluding other threads, and a merge renders its files on every core. On VS Code past 66 000 commits, 500 commits imported in 261 s rather than 734 s, with the same history.
-
A long push goes in parts (issue #95).
oxy pushsent a whole history in one request, held in memory on both sides; the full VS Code import would have passed a hub's 4 GiB limit. It now sends parts of aboutpush.batch-bytes(default 256 MiB) in dependency order, objects alone, and the last part moves the bookmark; the spinner says which part is going. A server stores a part and reports it asobjects. -
A state index read only as far as it is used (issue #94). Each file's history in the workspace's state index is stored after the rest with a hash of its own, and is read and checked only when a command builds that file, so a diff or a one-file cat no longer reads and hashes the histories of every file (67 MB of an 84 MB index on VS Code at 20 000 commits). Changes added on top of an index no longer decode the histories they touch. A history found damaged is an error that says so, and the index is removed and rebuilt by the next command. Under load on that repository,
diffwent from 85 ms to 63 ms andcat/blamefrom 102 ms to 80 ms. -
Removing a file removes every copy of it (issue #88). When two lines of history each put a file back in the same place, it has two placements there and shows as one file. Removing or moving it retired only one, so the other stayed behind, and once its directory went it was an orphan: a conflict in the state. It is the one difference the Git import of VS Code had in its first 31 000 commits. Both now go together, in a commit and in a Git import.
-
A quicker log and diff on long histories (issue #94, first part).
oxy logno longer reads the working copy's metadata through the store's cache, walks the history with a fast hash and without copying each change's metadata, and works out the shortest unique id prefixes for the changes it shows rather than for every change. The state index is read without copying the file histories in it, and its change list is checked on every core. On VS Code at 20 000 commits,log -n 20went from 74 ms to 40 ms and loading the state index from 43 ms to 28 ms, with the same output. -
Faster commits, and the state index after a checkpoint (issue #93). A state loaded through a checkpoint read the changes after it whole, text included, so it could never be saved as the workspace's state index and every command after a checkpoint loaded history the long way (25 s for the first commit on VS Code at 20 000 commits). It now reads them as the index needs them.
oxy commit PATHSno longer takes a second snapshot to count what it left when it took everything. A one-file commit on VS Code went from about 450 ms to 300 ms; 70 ms of that is the store's fsync, which stays. -
Reading one file reads one file (issue #92).
oxy catrendered every file of the state to print one. It now builds only that file, from the workspace's state index when it reads the working copy's base or the state it is on. On VS Code at 20 000 commits,cat package.json -r mainwent from 26 s to 0.10 s and at a change from 2016 from 0.66 s to 0.16 s; on the full 166 000-change history it takes 1.9 s and 1.3 GB, where it ran for minutes and used 9 GB. -
A file's history in a fraction of a second (issue #91).
oxy log --pathrendered every file of the tree twice just to find the path, and both it and thetouches()revset decoded every change of the history, its text included, to see what each one touched. They now read the path from the tree alone and keep the nodes each change touches in a cache beside the store (.oxy/index/touched, rebuilt if missing). On VS Code at 20 000 commits,log --path package.jsonwent from 53.6 s to 0.16 s (Git: 0.15 s) andtouches("package.json")from 3.4 s to 0.16 s, with the same output.
Releases 1
oxy 0.4.3 v0.4.3 · ✔ signed by Andy McCall · andymccall ·
Trust and auditAssets
- SHA256SUMS 834 B · blake3
1f78837ba909· 15 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-linux-arm64.tar.gz 6.9 MiB · blake3
3ce3525b58a5· 6 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-linux-riscv64.tar.gz 7.4 MiB · blake3
afbfa7f00003· 3 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-linux-x86_64.tar.gz 7.4 MiB · blake3
509f1c0e6265· 5 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-macos-arm64.tar.gz 6.2 MiB · blake3
c75a4496d229· 3 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-macos-x86_64.tar.gz 7.3 MiB · blake3
984b06ca41fd· 3 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy-0.4.3-windows-x86_64.zip 9.1 MiB · blake3
57b62a1750ad· 4 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy_0.4.3_amd64.deb 5.2 MiB · blake3
83df51e05875· 7 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy_0.4.3_arm64.deb 4.6 MiB · blake3
0ad0677d6dfd· 5 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - oxy_0.4.3_riscv64.deb 5.2 MiB · blake3
8cded85e8f13· 4 downloads · built by run #266 dist · signed receipt by plex-1 (OxygenFlow runner) · provenance - Source (v0.4.3.tar.zst)
- Source (v0.4.3.zip)