A changelog: 0.1.0 and what is unreleased (refs #41) 8fd78eb52ad2
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-10-01 01:38 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
8fd78eb52ad2aaac80470949fa2b6bbe79ef04a19c14b830eae56d0adcfb1f71- Depends on
- nothing: a root change
- Depended on by
- 835ceb9b3ea7 232aabb5452d 284fe47d98b9 aded4110f0bd 135bdcadec4a 2f0b4b0651ea c397a8c36a9f 6f4226bfb87f 91334b7fa574 16aa9e03d85b ed931d1d1102 045340293dc7 6c3dbe2018e0 a42f9fb47e37 0588de69a84d 569802ebae0e 642da2636de2 64dc5197f9df 7f617ee9b3ad 4275ecb110f5 aa137bb8e77d fa53a2849de8 78b49d4d01f0 7a3cc5149a14 c0d4075cadc0 b5e98094eb8f 642fa213de80 80b069facc69 2452b4407ab7 4afe288b7946 9bd98cfb4f7e e02edccce98c 795b8b502ded 544d0541a7e5 ff6987682725 c8d9059e4e70 157d02e95586 4476cdbb0443 570e35310f31 b260109d27c5 f3811eb20bea 7bd805ffb418 d3b270909c78 45a6f5ec85cf f0ef9778e587 82202a4d0025 ee130dd9eef2 1ec6fdbc6bcb 6f06d9f912b4 2b95bc24d7d6 771661aa50f4 27825564bc16 8156967b882c ef7d4ea6f33b e4595038502a 68dcf21fe055 f05b84d1ad2d efad40f9ac8e c86270b7c670 4294602ee66f ebb9210bad0c 31d3e932e97a 5d79b5c2de88 7fc365369758 aa4939e07a09 9b723f69b032 fe9586d93fb1 b689779e9e74 530a0fc650a2 9d580f2132f3 34fad4a92451 e2a5edbf1395 d6e0d5b8b339 aedfe465b611 cb8b8082fa73 5552e69c7325 e8e6e0cac26a 79b5a90ffd43 7505194116e7 19303b4a06fb 170bb436e1d5 d0bf2da15094 f6dccc4533c8 d256e826ac5d 579afd107b9b 7026bd7dc5b8 d069701a4997 454236d1108d 33be24095b4b d45dab0484ea 614f55e14eee c71a5777509a 6a0008781d5e a46f3e4f50b1 bea00d4177c6 b35df36b7dc5 fddf64baa3d2 33472ccc08cc e226a6cc2f71 10b4fd430eab 1ec3f008e96a 3604179679eb c07406bcc237 b0461604ed98 98a1620a3840 2bf22305bc48 14edbaaf5291 ff1f62fee654
- 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.2.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
- 1 atom, 1 tree operation, 1 file
Browse the tree at this change
added CHANGELOG.md +35 −0
| 1 | + | # Changelog |
|
| 2 | + | ||
| 3 | + | ## Unreleased |
|
| 4 | + | ||
| 5 | + | Measured on the Linux kernel's tree (95 943 files); `docs/benchmarks.md` has the tables. |
|
| 6 | + | ||
| 7 | + | - **Faster than Git on the first commit, a clean status, fsck, gc and the pack's size.** |
|
| 8 | + | - **First commit:** 21.9 s (Git 33.7 s). |
|
| 9 | + | - **Clean status:** 0.17 to 0.19 s (Git 0.22 s). |
|
| 10 | + | - **fsck:** 8.2 s (Git 12.6 s). |
|
| 11 | + | - **gc:** 33.7 s (Git 70 s). |
|
| 12 | + | - **The pack:** 293.5 MB (Git's 295.5 MB). |
|
| 13 | + | - **Level with Git on a local clone (about 17 s).** Status with one file changed, diff, commit, log, blame and checkout are two to six times faster than at 0.1.0. They are still behind Git: |
|
| 14 | + | - **Status with one file changed:** 0.41 s, against 0.22 s. |
|
| 15 | + | - **Commit:** 0.67 s, against 0.21 s. |
|
| 16 | + | - **Blame:** 0.16 s, against 0.07 s. |
|
| 17 | + | - **Checkout:** 0.74 s, against 0.35 s. |
|
| 18 | + | - **A project's `.gitignore` files count**, below `.oxyignore`. A project coming from Git no longer commits its build output, and `!` in `.oxyignore` can bring back what `.gitignore` leaves out. Ignore rules still apply to untracked paths only. |
|
| 19 | + | - **A folder holding a repository of its own is named.** `oxy status`, `oxy commit` and `status --json` (`untracked_nested`) name a folder with its own `.git` or `.oxy`, rather than skipping it silently. They say how to track its files, keep it as a subrepo, or leave it out. |
|
| 20 | + | - **`oxy rebase CHANGE --onto T --into-working-copy`.** Where a rebase would be conflicted, the target is merged into the current bookmark instead, and the conflict is resolved in the working copy, as after `oxy merge`. |
|
| 21 | + | - **mimalloc is the allocator.** Most of the speed above came from it: status, walks and index loads allocate many small values from every thread. |
|
| 22 | + | - **Internals.** Each item below is a cache and is rebuilt when it does not check: |
|
| 23 | + | - the workspace manifest is a checksummed binary file; |
|
| 24 | + | - the state index is decoded lazily, caught up by replaying a few changes, and kept for the last two states; |
|
| 25 | + | - the store caches change metadata; |
|
| 26 | + | - a pack can carry a trained zstd dictionary. |
|
| 27 | + | ||
| 28 | + | ## 0.1.0 (2026-09-30) |
|
| 29 | + | ||
| 30 | + | - **The first builds for people to download.** |
|
| 31 | + | - Linux x86_64 and arm64 (glibc 2.28 or later) as `.tar.gz` and `.deb`. |
|
| 32 | + | - macOS x86_64 and arm64. |
|
| 33 | + | - Windows x86_64. |
|
| 34 | + | ||
| 35 | + | All are cross-compiled from Linux with `scripts/dist.sh`, with SHA256SUMS. A prerelease: formats may still change before 1.0. |