Ghee/snapshot.output
2023-10-01 23:49:24 -07:00

578 lines
27 KiB
Text

+ declare -A PREFIXES
+ PREFIXES=([relative]="." [absolute]="$EXAMPLE_PATH/FSNAME")
+ mkdir ./ext4
+ mkdir ./btrfs
+ mkdir ./empty
+ for i in "${!PREFIXES[@]}"
+ Make sure we are in the base path so the relative prefix resolves properly
+ cd /home/josh/Projects/Ghee/snapshot
+ prefix=.
+ '======= relative prefix: . ======='
+ ext4img=ghee-ext4-relative.img
+ dd if=/dev/zero of=ghee-ext4-relative.img bs=1M count=400
+ mkfs.ext4 -L ext4-relative ghee-ext4-relative.img
+ sudo mount -o loop ghee-ext4-relative.img ext4
+ sudo chown josh:josh ext4
+ fsprefix=.
+ cd ext4
+ main .
+ mkdir ./people
+ touch ./people/Sandeep ./people/Sofia ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./people/Wulfrum
+ Check how Ghee sees the files we just set up
+ /home/josh/Projects/Ghee/target/debug/ghee get ./people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ Tell Ghee what key the data is indexed by
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./people
+ Index the dataset by ID
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./people ./people:id
./people/Sofia -> ./people:id/1
./people/Wulfrum -> ./people:id/0
./people/Sandeep -> ./people:id/2
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./people
./people/Sofia -> ./people/:state:id/WA/1
./people/Wulfrum -> ./people/:state:id/CA/0
./people/Sandeep -> ./people/:state:id/CA/2
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/snapshot/ext4/people:id","name":"/home/josh/Projects/Ghee/snapshot/ext4/people","state,id":"/home/josh/Projects/Ghee/snapshot/ext4/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./direct -k blah
Initialized table ./direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./people2 -k id
Initialized table ./people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./empty
+ cd ..
+ sudo umount ext4
+ btrfsimg=ghee-btrfs-relative.img
+ dd if=/dev/zero of=ghee-btrfs-relative.img bs=1M count=114
+ mkfs.btrfs -L btrfs-relative --rootdir empty ghee-btrfs-relative.img
+ sudo mount -o loop ghee-btrfs-relative.img btrfs
+ sudo chown josh:josh btrfs
+ fsprefix=.
+ cd btrfs
+ main .
+ mkdir ./people
+ touch ./people/Sandeep ./people/Sofia ./people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA ./people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA ./people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA ./people/Wulfrum
+ Check how Ghee sees the files we just set up
+ /home/josh/Projects/Ghee/target/debug/ghee get ./people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ Tell Ghee what key the data is indexed by
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name ./people
+ Index the dataset by ID
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id ./people ./people:id
./people/Sandeep -> ./people:id/2
./people/Sofia -> ./people:id/1
./people/Wulfrum -> ./people:id/0
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id ./people
./people/Sandeep -> ./people/:state:id/CA/2
./people/Sofia -> ./people/:state:id/WA/1
./people/Wulfrum -> ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v ./people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/snapshot/btrfs/people:id","name":"/home/josh/Projects/Ghee/snapshot/btrfs/people","state,id":"/home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v ./people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name ./people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./direct -k blah
Initialized table ./direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v ./people2 -k id
Initialized table ./people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status ./people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get ./empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a ./empty
+ btrfs .
+ Sanity check status and log on an empty directory
+ /home/josh/Projects/Ghee/target/debug/ghee status .
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee log
No table found; no log exists
+ Create a pizza table
+ /home/josh/Projects/Ghee/target/debug/ghee create -v -k toppings ./pizza
Initialized table ./pizza with key: user.toppings
+ Make sure the status is empty
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+./pizza
+ Create a record representing an olive pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./pizza/olive
+ Check that the new record shows up the status
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+./pizza
+./pizza/olive
+ Commit the change with a helpful comment
++ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add olive pizza' ./pizza
+ commit1=cb4b5763-902e-ca4d-a600-d69a6719b044
+ Make sure the new commit shows up in the log
+ /home/josh/Projects/Ghee/target/debug/ghee log ./pizza
commit cb4b5763-902e-ca4d-a600-d69a6719b044
Add olive pizza
+ Check that the status is empty again, since there are no pending changes
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+ Now create a pepperoni pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./pizza/pepperoni
+ Set text in the file itself, rather than just xattrs
+ echo 'Olives are good on pizza'
+ Also set its yumminess level to 5, as an extended attribute
+ /home/josh/Projects/Ghee/target/debug/ghee set -s yumminess=5 ./pizza/olive
+ Make sure this all shows up in the status
+ FIXME The xattr changes arent reflected
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
m./pizza/olive
+./pizza/pepperoni
+ Commit the new changes
++ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add pepperoni; add details to olive' ./pizza
+ commit2=a58c5f48-8f17-ed4a-a10a-68ea074f39dc
+ Make sure status and log reflect this
+ /home/josh/Projects/Ghee/target/debug/ghee status ./pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log ./pizza
commit a58c5f48-8f17-ed4a-a10a-68ea074f39dc
Add pepperoni; add details to olive
commit cb4b5763-902e-ca4d-a600-d69a6719b044
Add olive pizza
+ Create a buffalo chicken pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch ./pizza/buffalo-chicken
+ pwd
/home/josh/Projects/Ghee/snapshot/btrfs
+ pushd ./pizza
~/Projects/Ghee/snapshot/btrfs/pizza ~/Projects/Ghee/snapshot/btrfs
+ Check status, restore, and status again using the current directory form
+ /home/josh/Projects/Ghee/target/debug/ghee status
+./buffalo-chicken
+ /home/josh/Projects/Ghee/target/debug/ghee restore .
+ /home/josh/Projects/Ghee/target/debug/ghee status
+ /home/josh/Projects/Ghee/target/debug/ghee ls
:snapshots table
olive record
pepperoni record
+ /home/josh/Projects/Ghee/target/debug/ghee reset cb4b5763-902e-ca4d-a600-d69a6719b044
+ /home/josh/Projects/Ghee/target/debug/ghee ls
:snapshots table
olive record
+ popd
~/Projects/Ghee/snapshot/btrfs
+ pwd
/home/josh/Projects/Ghee/snapshot/btrfs
+ cd ..
+ pwd
/home/josh/Projects/Ghee/snapshot
+ sudo umount btrfs
+ for i in "${!PREFIXES[@]}"
+ Make sure we are in the base path so the relative prefix resolves properly
+ cd /home/josh/Projects/Ghee/snapshot
+ prefix=/home/josh/Projects/Ghee/snapshot/FSNAME
+ '======= absolute prefix: /home/josh/Projects/Ghee/snapshot/FSNAME ======='
+ ext4img=ghee-ext4-absolute.img
+ dd if=/dev/zero of=ghee-ext4-absolute.img bs=1M count=400
+ mkfs.ext4 -L ext4-absolute ghee-ext4-absolute.img
+ sudo mount -o loop ghee-ext4-absolute.img ext4
+ sudo chown josh:josh ext4
+ fsprefix=/home/josh/Projects/Ghee/snapshot/ext4
+ cd ext4
+ main /home/josh/Projects/Ghee/snapshot/ext4
+ mkdir /home/josh/Projects/Ghee/snapshot/ext4/people
+ touch /home/josh/Projects/Ghee/snapshot/ext4/people/Sandeep /home/josh/Projects/Ghee/snapshot/ext4/people/Sofia /home/josh/Projects/Ghee/snapshot/ext4/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA /home/josh/Projects/Ghee/snapshot/ext4/people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA /home/josh/Projects/Ghee/snapshot/ext4/people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA /home/josh/Projects/Ghee/snapshot/ext4/people/Wulfrum
+ Check how Ghee sees the files we just set up
+ /home/josh/Projects/Ghee/target/debug/ghee get /home/josh/Projects/Ghee/snapshot/ext4/people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ Tell Ghee what key the data is indexed by
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name /home/josh/Projects/Ghee/snapshot/ext4/people
+ Index the dataset by ID
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id /home/josh/Projects/Ghee/snapshot/ext4/people /home/josh/Projects/Ghee/snapshot/ext4/people:id
/home/josh/Projects/Ghee/snapshot/ext4/people/Sofia -> /home/josh/Projects/Ghee/snapshot/ext4/people:id/1
/home/josh/Projects/Ghee/snapshot/ext4/people/Sandeep -> /home/josh/Projects/Ghee/snapshot/ext4/people:id/2
/home/josh/Projects/Ghee/snapshot/ext4/people/Wulfrum -> /home/josh/Projects/Ghee/snapshot/ext4/people:id/0
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id /home/josh/Projects/Ghee/snapshot/ext4/people
/home/josh/Projects/Ghee/snapshot/ext4/people/Sofia -> /home/josh/Projects/Ghee/snapshot/ext4/people/:state:id/WA/1
/home/josh/Projects/Ghee/snapshot/ext4/people/Sandeep -> /home/josh/Projects/Ghee/snapshot/ext4/people/:state:id/CA/2
/home/josh/Projects/Ghee/snapshot/ext4/people/Wulfrum -> /home/josh/Projects/Ghee/snapshot/ext4/people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v /home/josh/Projects/Ghee/snapshot/ext4/people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a /home/josh/Projects/Ghee/snapshot/ext4/people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/snapshot/ext4/people:id","name":"/home/josh/Projects/Ghee/snapshot/ext4/people","state,id":"/home/josh/Projects/Ghee/snapshot/ext4/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name /home/josh/Projects/Ghee/snapshot/ext4/people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/ext4/people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/ext4/people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/ext4/people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name /home/josh/Projects/Ghee/snapshot/ext4/people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v /home/josh/Projects/Ghee/snapshot/ext4/direct -k blah
Initialized table /home/josh/Projects/Ghee/snapshot/ext4/direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v /home/josh/Projects/Ghee/snapshot/ext4/people2 -k id
Initialized table /home/josh/Projects/Ghee/snapshot/ext4/people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/ext4/people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir /home/josh/Projects/Ghee/snapshot/ext4/empty
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/ext4/empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get /home/josh/Projects/Ghee/snapshot/ext4/empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a /home/josh/Projects/Ghee/snapshot/ext4/empty
+ cd ..
+ sudo umount ext4
+ btrfsimg=ghee-btrfs-absolute.img
+ dd if=/dev/zero of=ghee-btrfs-absolute.img bs=1M count=114
+ mkfs.btrfs -L btrfs-absolute --rootdir empty ghee-btrfs-absolute.img
+ sudo mount -o loop ghee-btrfs-absolute.img btrfs
+ sudo chown josh:josh btrfs
+ fsprefix=/home/josh/Projects/Ghee/snapshot/btrfs
+ cd btrfs
+ main /home/josh/Projects/Ghee/snapshot/btrfs
+ mkdir /home/josh/Projects/Ghee/snapshot/btrfs/people
+ touch /home/josh/Projects/Ghee/snapshot/btrfs/people/Sandeep /home/josh/Projects/Ghee/snapshot/btrfs/people/Sofia /home/josh/Projects/Ghee/snapshot/btrfs/people/Wulfrum
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sandeep -s id=2 -s state=CA /home/josh/Projects/Ghee/snapshot/btrfs/people/Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Sofia -s id=1 -s state=WA /home/josh/Projects/Ghee/snapshot/btrfs/people/Sofia
+ /home/josh/Projects/Ghee/target/debug/ghee set -s name=Wulfrum -s id=0 -s state=CA /home/josh/Projects/Ghee/snapshot/btrfs/people/Wulfrum
+ Check how Ghee sees the files we just set up
+ /home/josh/Projects/Ghee/target/debug/ghee get /home/josh/Projects/Ghee/snapshot/btrfs/people
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ Tell Ghee what key the data is indexed by
+ /home/josh/Projects/Ghee/target/debug/ghee init -k name /home/josh/Projects/Ghee/snapshot/btrfs/people
+ Index the dataset by ID
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k id /home/josh/Projects/Ghee/snapshot/btrfs/people /home/josh/Projects/Ghee/snapshot/btrfs/people:id
/home/josh/Projects/Ghee/snapshot/btrfs/people/Sandeep -> /home/josh/Projects/Ghee/snapshot/btrfs/people:id/2
/home/josh/Projects/Ghee/snapshot/btrfs/people/Sofia -> /home/josh/Projects/Ghee/snapshot/btrfs/people:id/1
/home/josh/Projects/Ghee/snapshot/btrfs/people/Wulfrum -> /home/josh/Projects/Ghee/snapshot/btrfs/people:id/0
+ /home/josh/Projects/Ghee/target/debug/ghee idx -v -k state -k id /home/josh/Projects/Ghee/snapshot/btrfs/people
/home/josh/Projects/Ghee/snapshot/btrfs/people/Sandeep -> /home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id/CA/2
/home/josh/Projects/Ghee/snapshot/btrfs/people/Sofia -> /home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id/WA/1
/home/josh/Projects/Ghee/snapshot/btrfs/people/Wulfrum -> /home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee ins -v /home/josh/Projects/Ghee/snapshot/btrfs/people
Initialized ./people/Janella
Linked ./people:id/3 -> ./people/Janella
Linked ./people/:state:id/FL/3 -> ./people/Janella
Initialized ./people/Lilly
Linked ./people:id/4 -> ./people/Lilly
Linked ./people/:state:id/NM/4 -> ./people/Lilly
Initialized ./people/Darrel
Linked ./people:id/5 -> ./people/Darrel
Linked ./people/:state:id/MI/5 -> ./people/Darrel
+ /home/josh/Projects/Ghee/target/debug/ghee get -a /home/josh/Projects/Ghee/snapshot/btrfs/people
user.ghee.tableinfo {"key":"name","indices_abs":{"id":"/home/josh/Projects/Ghee/snapshot/btrfs/people:id","name":"/home/josh/Projects/Ghee/snapshot/btrfs/people","state,id":"/home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id"}}
./people/Darrel user.id 5
./people/Darrel user.name Darrel
./people/Darrel user.state MI
./people/Janella user.id 3
./people/Janella user.name Janella
./people/Janella user.state FL
./people/Lilly user.id 4
./people/Lilly user.name Lilly
./people/Lilly user.state NM
./people/Sandeep user.id 2
./people/Sandeep user.name Sandeep
./people/Sandeep user.state CA
./people/Sofia user.id 1
./people/Sofia user.name Sofia
./people/Sofia user.state WA
./people/Wulfrum user.id 0
./people/Wulfrum user.name Wulfrum
./people/Wulfrum user.state CA
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name /home/josh/Projects/Ghee/snapshot/btrfs/people
./people/Wulfrum user.name Wulfrum
./people/Sandeep user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/btrfs/people -w name=Sofia
Removed ./people:id/1
Removed ./people/Sofia
Removed ./people/:state:id/WA/1
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/btrfs/people:id 3
Removed ./people:id/3
Removed ./people/Janella
Removed ./people/:state:id/FL/3
+ /home/josh/Projects/Ghee/target/debug/ghee del -v /home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id CA 0
Removed ./people:id/0
Removed ./people/Wulfrum
Removed ./people/:state:id/CA/0
+ /home/josh/Projects/Ghee/target/debug/ghee get -a -w state=CA -f name /home/josh/Projects/Ghee/snapshot/btrfs/people/:state:id
./people/:state:id/CA/2 user.name Sandeep
+ /home/josh/Projects/Ghee/target/debug/ghee create -v /home/josh/Projects/Ghee/snapshot/btrfs/direct -k blah
Initialized table /home/josh/Projects/Ghee/snapshot/btrfs/direct with key: user.blah
+ /home/josh/Projects/Ghee/target/debug/ghee create -v /home/josh/Projects/Ghee/snapshot/btrfs/people2 -k id
Initialized table /home/josh/Projects/Ghee/snapshot/btrfs/people2 with key: user.id
Initialized ./people2/3
Initialized ./people2/4
Initialized ./people2/5
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/people2
+./people2
+./people2/3
+./people2/4
+./people2/5
+ mkdir /home/josh/Projects/Ghee/snapshot/btrfs/empty
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/empty
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee get /home/josh/Projects/Ghee/snapshot/btrfs/empty
+ /home/josh/Projects/Ghee/target/debug/ghee get -a /home/josh/Projects/Ghee/snapshot/btrfs/empty
+ btrfs /home/josh/Projects/Ghee/snapshot/btrfs
+ Sanity check status and log on an empty directory
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs
No table found
+ /home/josh/Projects/Ghee/target/debug/ghee log
No table found; no log exists
+ Create a pizza table
+ /home/josh/Projects/Ghee/target/debug/ghee create -v -k toppings /home/josh/Projects/Ghee/snapshot/btrfs/pizza
Initialized table /home/josh/Projects/Ghee/snapshot/btrfs/pizza with key: user.toppings
+ Make sure the status is empty
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+./pizza
+ Create a record representing an olive pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch /home/josh/Projects/Ghee/snapshot/btrfs/pizza/olive
+ Check that the new record shows up the status
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+./pizza
+./pizza/olive
+ Commit the change with a helpful comment
++ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add olive pizza' /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+ commit1=26639c6a-e730-e94b-9438-099e8674068c
+ Make sure the new commit shows up in the log
+ /home/josh/Projects/Ghee/target/debug/ghee log /home/josh/Projects/Ghee/snapshot/btrfs/pizza
commit 26639c6a-e730-e94b-9438-099e8674068c
Add olive pizza
+ Check that the status is empty again, since there are no pending changes
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+ Now create a pepperoni pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch /home/josh/Projects/Ghee/snapshot/btrfs/pizza/pepperoni
+ Set text in the file itself, rather than just xattrs
+ echo 'Olives are good on pizza'
+ Also set its yumminess level to 5, as an extended attribute
+ /home/josh/Projects/Ghee/target/debug/ghee set -s yumminess=5 /home/josh/Projects/Ghee/snapshot/btrfs/pizza/olive
+ Make sure this all shows up in the status
+ FIXME The xattr changes arent reflected
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/pizza
m./pizza/olive
+./pizza/pepperoni
+ Commit the new changes
++ /home/josh/Projects/Ghee/target/debug/ghee commit -m 'Add pepperoni; add details to olive' /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+ commit2=dd1fdd4f-8731-3f4c-abca-aad2948645b8
+ Make sure status and log reflect this
+ /home/josh/Projects/Ghee/target/debug/ghee status /home/josh/Projects/Ghee/snapshot/btrfs/pizza
+ /home/josh/Projects/Ghee/target/debug/ghee log /home/josh/Projects/Ghee/snapshot/btrfs/pizza
commit dd1fdd4f-8731-3f4c-abca-aad2948645b8
Add pepperoni; add details to olive
commit 26639c6a-e730-e94b-9438-099e8674068c
Add olive pizza
+ Create a buffalo chicken pizza
+ /home/josh/Projects/Ghee/target/debug/ghee touch /home/josh/Projects/Ghee/snapshot/btrfs/pizza/buffalo-chicken
+ pwd
/home/josh/Projects/Ghee/snapshot/btrfs
+ pushd /home/josh/Projects/Ghee/snapshot/btrfs/pizza
~/Projects/Ghee/snapshot/btrfs/pizza ~/Projects/Ghee/snapshot/btrfs
+ Check status, restore, and status again using the current directory form
+ /home/josh/Projects/Ghee/target/debug/ghee status
+./buffalo-chicken
+ /home/josh/Projects/Ghee/target/debug/ghee restore .
+ /home/josh/Projects/Ghee/target/debug/ghee status
+ /home/josh/Projects/Ghee/target/debug/ghee ls
:snapshots table
olive record
pepperoni record
+ /home/josh/Projects/Ghee/target/debug/ghee reset 26639c6a-e730-e94b-9438-099e8674068c
+ /home/josh/Projects/Ghee/target/debug/ghee ls
:snapshots table
olive record
+ popd
~/Projects/Ghee/snapshot/btrfs
+ pwd
/home/josh/Projects/Ghee/snapshot/btrfs
+ cd ..
+ pwd
/home/josh/Projects/Ghee/snapshot
+ sudo umount btrfs
+ cd ..