# 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 -[ ] `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.) ## 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?