[ANNOUNCE] gitfs pre-release 0.03

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[ANNOUNCE] gitfs pre-release 0.03

From: Mitchell Blank Jr <mitch@sfgoth.com>
Date: 2016-06-15 22:42:12

I've released another pre-release of my gitfs tool tonight.  The isn't a ton
of new functionality, but there has been a lot of changes:

  % for dir in gitfs-0.0[123]; do echo `cat $dir/*.[ch] | wc -l` $dir; done
  2228 gitfs-0.01
  2334 gitfs-0.02
  8276 gitfs-0.03

This is mostly because I've been working on taking it from the "proof of
concept" phase to a real filesystem.  To that end:

  * gitfs now does all git operations in a separate thread so accessing a
    large file won't cause other filesystem operations to stall.  In order
    to allow multithreaded operations we no longer use the libfuse API -- we
    speak the kernel/fuse API directly.  This was a lot of work but it's
    actually a much better fit for gitfs since it allows me to map directly
    between inode #'s and the internal "gnode"'s, saving a lot of work.

    Because of this you no longer need libfuse installed to use gitfs --
    all you need to compile is point the Makefile at a <linux/fuse.h>
    header -- the one that comes with a >=2.6.14 kernel will work fine.
    However, to actually mount a fuse filesystem you'll need the "fusermount"
    helper binary from fuse somewhere in $PATH

  * We use the sha1_object_info() API in current versions of libgit to
    avoid uncompressing blob objects if they're only being stat()'ed.
    This is another big speed-up

  * gitfs mounts now also create a UNIX domain socket so external clients
    can make requests (for instance to optimize things like "diff")
    Currently only a few simple commands are implemented, as described in
    the README

  * Lots of other infrastructure and data-structure work.  I'm particularly
    proud of my rather scary red-black tree implementation :-)

As usual tarballs are available at:
	http://www.sfgoth.com/~mitch/linux/gitfs/

-Mitch

Re: [ANNOUNCE] gitfs pre-release 0.03

From: Paolo Teti <hidden>
Date: 2016-06-15 22:42:12

Great job!

A question: the gitFS in your intent has to became a "clone" of the
Rational MultiVersion File System?

Re: [ANNOUNCE] gitfs pre-release 0.03

From: Mitchell Blank Jr <mitch@sfgoth.com>
Date: 2016-06-15 22:42:12

Paolo Teti wrote:
A question: the gitFS in your intent has to became a "clone" of the
Rational MultiVersion File System?
Well, I guess I can't give a real solid answer since I've never used
Rational and I'm only vaguely aware of its capabilities.  However I think
the answer is "no".  My personal belief is that the filesystem abstraction
isn't a good fit to be the main interface to an SCM, especially git.
That's why I'm currently working on just visualizing the contents of the
git repository and I'll add features on top of that as they seem to make
sense.

-Mitch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help