- Notifications
You must be signed in to change notification settings - Fork19
A filesystem interface to git repositories
License
NotificationsYou must be signed in to change notification settings
g2p/git-fs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
git-fs is a filesystem interface to git repositories.
Past and current versions can be accessed without a checkout.Heads, tags, branches, reflogs, commits and worktrees provide variousmeans of naming and accessing files.
You can try these on the git.git repository.
How much code in the first major release?
git fscd .git/fs/tags/v1.0.0/worktreeohcount # A sloccount alternative
git fs; cd .git/fsfirefox remotes/origin/html/worktree/index.html
git fs; cd .git/fscd commits/902f235378cb2b2f6dd5dd664b9630c95321f0ae
- Restore from backup (bup, gibak)
- Look at previous conffiles stored in etckeeper
- Look at wiki pages stored by ikiwiki or gh-pages
- Serve repository snapshots using a standard webserver.
git-fs depends on FUSE and some OCaml libraries.It has been tested on Debian, Ubuntu, and ArchLinux.
Get the dependencies:
sudo apt-get install omake libfuse-dev camlidl libpcre-ocaml-dev libbatteries-ocaml-dev # Ubuntusudo aptitude install omake libfuse-dev camlidl libpcre-ocaml-dev libbatteries-ocaml-dev # Debiansudo pacman -S omake ocamlfuse-cvs pcre-ocaml ocaml-batteries # Archsudo yum install fuse-devel ocaml-pcre-devel ocaml-findlib-devel ocaml-camomile ocaml-camlidl ocaml-bisect ocaml-ounit ocaml-ocamldoc # Fedora
Build:
git submodule update --initmake -C deps/ocamlfuse/lib || make -C deps/ocamlfuse/lib byte-code-libraryomake
Install (~/bin must be in your path):
ln -s ~+/git-fs -t ~/bin
The first step is to mount the filesystem.
git fs
Then, either browse it
cd .git/fs/HEAD/worktreecat README
Or use a few special commands
git fs mtabgit fs umountgit fs help
MALLOC_CHECK_=3 debug/git-fs debug 2>&1 |tee -a debug.log