-
The prompt agrees with status in a repository with subrepos (issue #75). Straight after a commit or a merge,
oxy prompttook a subrepo's directory for a recently changed file and showed*until a fulloxy statusran. Subrepos are now compared by their pins. -
Catching up a stale bookmark (issue #74).
oxy bookmark switchbrings a bookmark that is only behind its remote up to it first, rather than checking out the stale state.oxy pulltakes uncommitted work along when the pulled changes leave its files alone, instead of leaving the working copy behind, andcheckout --carryno longer counts a subrepo already at the target's pin as a change. -
bookmark setfast-forwards (issue #78). Moving a bookmark onto work built on its newest head keeps the older changes it held that the new one doesn't depend on, as--uptodoes, and says so. A head the bookmark already holds is still refused without--uptoor--only. -
A bookmark's heads by name (issue #73).
oxy bookmark show [NAME]lists each head, newest first;bookmark list -vdoes it for every bookmark, andbookmark listnames the newest head's subject.bookmark(NAME)in a revset is a local or remote bookmark's heads and nothing else. -
Clearer messages.
submodule statusandupdatename.oxymodulesentries that were never added, with the command that pins them, andupdateexits 1 (issue #72).oxy cat -r CHANGE's help and error say that a change means its dependency closure, and suggest-r BOOKMARKor--at-op(issue #76). -
A long Git import can stop and carry on (issue #77, issue #79). An import moves its bookmark to the commits done so far every 2 000 commits, so
oxy git fetchresumes it.oxy git recoverrescues an import that stopped before its first checkpoint, or ran on an older oxy: it indexes the objects already written (each checked, a torn last one cut off) and points the bookmark at them. It recovered 139 086 commits of VS Code in under two minutes.oxy git fetch ../pathwith a relative path works. -
oxy git verifyin bounded memory (issue #81). It held the ancestry of every commit and ran out of memory on VS Code; it now holds only the commits whose children are still to come, and checks 120 000 commits in under 1 GB. On an import not finished yet it stops at the last imported commit, counts--lastfrom there, and says how many are still to come. -
Measuring an import (issue #80).
OXY_IMPORT_STOP_AFTER=Nends an import cleanly after N commits with its timings; the trace gives each commit's time and which path each merge took. Merges built from only the paths they can change are in, behindOXY_IMPORT_PARTIAL_MERGES=1until verified at depth: on VS Code a small merge goes from about 18 s to under a second. An import stopping early no longer dies of SIGPIPE. -
Cloud stores take credentials handed over (issue #68).
oxy_strata::Credentials(an S3 access key, a Google service account key, an Azure service principal) can be given when a store is opened, and a program can register a lookup for the stores it opens by URL. With them, nothing from the environment or the providers' files is used, which lets a hub keep each repository's credentials itself. Their debug form never shows a secret. -
A repository kept on a store (issue #68).
oxy init --store URLkeeps a repository's objects and operation log ondir://, S3, GCS or Azure, behind a local cache ofstorage.cachebytes (2 GiB by default) that can be deleted at any time. Checked against the real services: a commit takes 0.5 to 0.9 seconds, and reopening with no cache about half a second. -
A caching store, and the operation head on a store (issue #68).
strata::CachingStoreputs a local directory in front of any store: reads are kept, writes go to the remote first, the cache stays under a size limit by removing what was used least recently, and references always come from the remote. A repository kept on a store other than this disk's directory now holds its operation head there, moved by compare-and-swap with merge and retry. -
A large merge's file no longer imports empty (issue #71). When a merge rendered its files in batches, a file whose graph the import had already built came out empty, so the merge recorded the whole file as inserted again and conflicted with itself: VS Code's history failed verification from 2016 on. Built graphs are now copied. The 10 412-commit reproducer imports and verifies every commit.
-
Git import holds a budget of graph memory (issue #25). A long-lived file's graph keeps every line it ever had, and the import shed a kept state's graphs only past 2 000 of them; it now also sheds them past 1.5 million atoms, and gives freed memory back after each merge. A 28 637-commit slice of VS Code imports at 5.1 GB instead of 16.9 GB, in 36 minutes instead of 61, with the same verify result. The dependency check no longer memoises every queried change's whole ancestry.
-
A rotation follows you everywhere (issue #69).
delegate add,delegate remove,rotateandrenewrecord the successor key in the user config when it named the old key, and in the repository's own file when that pinned it, so every checkout moves together.oxy identity showwarns when a repository pins a key other than the user config's;oxy config --unset KEYdrops a key;oxy identity delegate addtakes several identity files in one rotation and reminds you that agents configured with yourauthor.keyneed the new one.
Releases 1
Oxygen 0.4.1 v0.4.1 · ✔ signed by Andy McCall · andymccall ·
Trust and auditAssets
- SHA256SUMS 834 B · blake3
a8406f8fe815· 15 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-linux-arm64.tar.gz 6.9 MiB · blake3
abed2229c737· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-linux-riscv64.tar.gz 7.4 MiB · blake3
16d49ed82708· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-linux-x86_64.tar.gz 7.4 MiB · blake3
9775bb9837bf· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-macos-arm64.tar.gz 6.2 MiB · blake3
58e6a9f7b5fe· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-macos-x86_64.tar.gz 7.3 MiB · blake3
110a4c9dee13· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy-0.4.1-windows-x86_64.zip 9.1 MiB · blake3
1b6e6ba08574· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy_0.4.1_amd64.deb 5.2 MiB · blake3
6e0c1c52a6d6· 6 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy_0.4.1_arm64.deb 4.6 MiB · blake3
6386cc2f5480· 5 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - oxy_0.4.1_riscv64.deb 5.1 MiB · blake3
b8a85dc11ca5· 4 downloads · built by run #252 dist · signed receipt by earth-1 (OxygenFlow runner) · provenance - Source (v0.4.1.tar.zst)
- Source (v0.4.1.zip)