Ghee/ROADMAP.md
2023-09-27 23:26:57 -07:00

1.7 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 -[ ] ghee restore ./people: replace all changed files in ./people with their versions in the most recent commit -[ ] init: allow comma-separated compound keys -[ ] Existence predicates, e.g. -w name matches any record for which name is set -[ ] 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 -[ ] Ensure all commands accept relative paths -[ ] Maybe store table index paths as relative paths? (Then we can operate on snapshots directly.) -[ ] Change hidden prefix from : to . -[ ] Cover absolute paths in example.sh

Future

  • Enforce f64 vs String types, don't let them be comparable
  • Integrate with Btrfs / Bcachefs / ZFS snapshots?
  • Benchmarks
  • Optimize more queries
  • Multi-index query optimization
  • Make sub-directories tables as well, on their portion of the key space?