This project contains some experimental file system implemented using FUSE, that works with git and help building.
Requires libboost-dev, libfuse, libgit2 and zlib as build time library dependencies. The build system depends on nodejs and ninja.
$ ./configure.js $ ninja
gitfs -- mounts a filesystem based on directory and hash, to mountpoint. uses libgit2
Takes the git reposiotory from the current working directory as of execution and mounts to the directory given as the first parameter.
$ ./out/gitfs mountpoint $ fusermount -u mountpoint
gitlstree -- mounts a filesystem based on directory and hash, to mountpoint. uses git ls-tree as backend.
Takes the git reposiotory from the current working directory as of execution and mounts to the directory given as the first parameter.
$ ./out/gitlstree mountpoint $ fusermount -u mountpoint
ninjafs -- a filesystem that lists ninja build targets, and builds on demand.
$ rm out/hello_world # for demonstration. $ out/ninjafs mountpoint/ $ ls mountpoint/ $ file mountpoint/out_hello_world $ ./mountpoint/out_hello_world $ fusermount -u mountpoint
A BSD-style license.