Update HISTORY for 0.6

This commit is contained in:
Josh Hansen 2023-10-02 00:32:04 -07:00
parent dddbd0571d
commit a714cd09db
2 changed files with 34 additions and 18 deletions

View file

@ -66,3 +66,37 @@ Adds the ability to insert from JSON on `init`.
Fixes a bug when indices were chained together but not reflected in all related indices' table info.
-[x] `idx`: ensure that indices beyond the second result in all related indices being declared as related
## 0.6.0 - 2 Oct 2023
Introduces tools for snapshotting and rolling back the state of Ghee tables, built using Btrfs subvolume snapshots.
The `commit` command makes a snapshot of the current state; `log` lists past changes; `restore` returns files to their
`HEAD` state; and `reset` returns all files to their state in a specified commit.
As in Git, a reference to a `HEAD` commit is maintained, but Ghee stores it in the extended attribute `user.ghee.v0.HEAD`.
(Versioning of the `user.ghee` xattr namespace is also accomplished in this release.)
A `touch` command is introduced to allow easy creation of files, whose xattrs will be inferred from their position within the
table / index directory structure.
Snapshot testing has been greatly strengthened, testing against ext4 and btrfs filesystems as well as relative and absolute paths.
-[x] ~~`init`~~: `create`: create as a Btrfs subvolume when possible
-[x] `ghee commit ./people -m "message!"`: commit the `./people` table in its current form with message "message!"
-[x] `ghee log ./people`: show commit messages for all commits in the `./people` table.
-[x] `commit`: inherit snapshot dir ownership from parent
-[x] `commit`: unit test; implemented, but disabled as it requires superuser
-[x] `ghee status ./people`: show how the ./people table has changed since last commit; using CoW snapshots
-[x] `ghee reset ./people gf037d2c98`: replace the current contents of the `./people` table to its state in commit gf037d2c98
-[x] `ghee restore ./people`: replace all changed files in `./people` with their versions in the most recent commit
-[x] Test `get` on non-table? Whatever that bug is...
-[x] Ensure all commands accept relative paths
-[-] Maybe store table index paths as relative paths? (Then we can operate on snapshots directly.)
Rejected in favor of storing absolute paths, which we then relativize
-[x] Cover absolute paths in example.sh
-[x] Version user.ghee namespace
-[x] Rename most-recent-snapshot -> HEAD
-[x] Update README.md for 0.6

View file

@ -1,23 +1,5 @@
# Ghee Roadmap
## 0.6
-[x] ~~`init`~~: `create`: create as a Btrfs subvolume when possible
-[x] `ghee commit ./people -m "message!"`: commit the `./people` table in its current form with message "message!"
-[x] `ghee log ./people`: show commit messages for all commits in the `./people` table.
-[x] `commit`: inherit snapshot dir ownership from parent
-[x] `commit`: unit test; implemented, but disabled as it requires superuser
-[x] `ghee status ./people`: show how the ./people table has changed since last commit; using CoW snapshots
-[x] `ghee reset ./people gf037d2c98`: replace the current contents of the `./people` table to its state in commit gf037d2c98
-[x] `ghee restore ./people`: replace all changed files in `./people` with their versions in the most recent commit
-[x] Test `get` on non-table? Whatever that bug is...
-[x] Ensure all commands accept relative paths
-[-] Maybe store table index paths as relative paths? (Then we can operate on snapshots directly.)
Rejected in favor of storing absolute paths, which we then relativize
-[x] Cover absolute paths in example.sh
-[x] Version user.ghee namespace
-[x] Rename most-recent-snapshot -> HEAD
-[x] Update README.md for 0.6
## 0.7
-[ ] `ghee branch`: branch management
-[ ] `ghee switch`: HEAD management