Age | Commit message (Collapse) | Author |
|
Change-Id: I6c4d471b2840613d30ee95efe14547f2f9c0db6b
|
|
Node::find would walk the tree all the way down and to the right if
given an out of bounds index. This doesn't affect the return value
(None), but it does waste some cycles walking down all the way to
the deepest rightmost leaf.
Change-Id: Ic2f72aa96291a25819fc6c3c2f060fe0182a7663
|
|
Change-Id: I319a2de0da0ff71f0f337e5a17ef199f23254b11
|
|
A single linear array does everything we need here, since we don't
actually use the cheap writes the BTreeMaps would permit us, and we
save ourselves the hassle of maintaining two parallel lookup structures.
Change-Id: I418b0aaa7a3191fab3195f36f2c68ac0f5f0382b
|
|
Change-Id: I8a928b57ecc81bea31d757e73b9ece9474628db4
|
|
This makes the filesystem more like eg /nix/store.
~/src/ripple> ./target/release/add fossil
puma5z7rnb4tmnqk8ixgryobay9ifg8txh69635snkgx8dis6quo
~/src/ripple> ./target/release/mount &
~/src/ripple> ls mnt/puma5z7rnb4tmnqk8ixgryobay9ifg8txh69635snkgx8dis6quo
benches build.rs Cargo.toml src
Change-Id: Ic35f81ffec521f49ce2e4a414919e1ff717d7041
|
|
Essentially, memtree::Node becomes more of a NodeRef, and Node gets
renamed to NodeBuf. This permits calling Node::find with an arbitrary
owned Directory, without having to move it into the enum.
Change-Id: I93838932a00f2e2073e3c7ddf7ce8d302ed4ed59
|
|
This replaces the tuples with a DirectoryEntry struct.
Change-Id: I42a49fee03f7abfac9143c48106ebeb964814ca9
|
|
Previously, the CLI took Directory protobufs as input or wrote them as
output. Now we just deal in store hashes.
Change-Id: I5e0f0f33929ede43d971080c33bdb865f1832b2e
|
|
This changes it from building an implicit top-level directory
containing all its args, to simply accepting a directory.
Change-Id: Iaf00e07d8568367b9eb27f365e8a2eaac3576974
|
|
Change-Id: Ic410619a6115a7059b79593c6fade38236d4e8c1
|
|
This adds clap to all our binaries. Only add currently takes any args,
but previously, the others did not reject args as they should.
Change-Id: I6257fb3b218c624ee0124f6ed7313a579db88c4c
|
|
FUSE doesn't actually respect the usual read() contract, so this
resulted in us serving truncated files.
Change-Id: I8bdb0bd7f03162fb78774f3f84daeefc5ba5e3b1
|
|
Change-Id: Iae189c3107a6841bcbdd75bb57dde785f9548130
|
|
This will primarily allow us to amortise metadata lookups.
Change-Id: Ic92781bf1ded5af62f6e955322bb89623afb2061
|
|
We'll never write a direct block-mapped filesystem, so this won't
become relevant.
Change-Id: I512ac44fc40f3969c2d54b93a1e2725628f46ed4
|
|
Change-Id: Ia5b63f3be625c738c58a915bc46114cac7acc0a5
|
|
Change-Id: I1bc7c0db7a0feeb5cb809e9382bf51816ec082c1
|
|
rmdir should be rejected with EROFS. For some reason, the initial EROFS
pass missed this.
Change-Id: Ib8d7b21b42fcf52e696041aa0ba41be5ab20d326
|
|
Apparently, rustfmt bugs out if you mix triple-slash and double-slash
comments on a struct literal.
Change-Id: I609ac42f86875b48947766fa9d67af7ef8997b9b
|
|
Change-Id: I162b542d31a8120792e72957e6ffaf1bd94d9676
|
|
Change-Id: Ic6cbb1dcee766e30140a1b027d6a80f5768865f5
|
|
Change-Id: Iaefd449224e8799c0f304442d54309c4aa27f874
|
|
Change-Id: I92073aae32bcf603799b83717635a13edbbef190
|
|
Serve up an entirely hardcoded minimal filesystem tree,
so we can see most of the FUSE plumbing working already.
Change-Id: I13c4b534c8dd159d2d2e177497b33f1bec3849ad
|
|
Change-Id: I7c2f940a411346230835f1befc5d4fe384e2b67e
|
|
Minimal no-op FUSE FS.
Change-Id: If6549990a768acea5ac8c75399b71ac10db8a4c6
|
|
Change-Id: I424bd482d82471255f2ce2f17bb0b5c6eae3b77a
|
|
Change-Id: I649c89ccc4e7fbc3ce42c86f6653d59c07cf58a9
|
|
Change-Id: Ia5893bc64f58e3a6b17aa96fdd27b6b49ebf5fa5
|
|
Fossil stores content-addressed blobs of file contents and
Protobuf-encoded directory listings, backed by Sled.
Change-Id: I8b49de6342218ca00755cec980b1d0cfb18878a7
|