Ghee/ROADMAP.md
Josh Hansen e1a3df5954 Revert "Switch the hidden prefix char from : to ."
Apparently there was something wrong, `status` was giving erroneous output; or perhaps `restore` had ceased working.

This reverts commit 139daa5e7f.
2023-10-01 20:49:11 -07:00

2.4 KiB

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 -[ ] 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 -[ ] Change hidden prefix from : to . -[x] Cover absolute paths in example.sh -[x] Version user.ghee namespace -[x] Rename most-recent-snapshot -> HEAD -[ ] Update README.md for 0.6

0.7

-[ ] ghee branch: branch management -[ ] ghee switch: HEAD management -[ ] ghee diff: see changes in detail, text files and binary -[ ] Existence predicates, e.g. -w name matches any record for which name is set -[ ] libghee (C library) -[ ] Benchmarks

Future

-[ ] Separate "porcelain" from "plumbing" and test plumbing more thoroughly -[ ] Unit test on ext4 and btrfs loop device filesystems? -[ ] Test all applicable commands with empty invocation (no path provided, defaulting to current) -[ ] init: allow comma-separated compound keys -[ ] Virtual attribute id and attributes id0 etc. -[ ] set: don't require -s/--set flag; take attr=value pairs directly -[ ] get: make output tabular as much as possible (get xattrs from all indices, put rest in 'other' column) -[ ] ls: show default primary keys when not explicitly specified -[ ] Issue warnings when xattrs inferred from path don't match explicit xattrs

  • Enforce f64 vs String types, don't let them be comparable
  • Generalize Btrfs functionality to other CoW filesystems, e.g. ZFS, Bcachefs, XFS
  • Optimize more queries
  • Multi-index query optimization
  • Make sub-directories tables as well, on their portion of the key space?