[announce] Sharebox, a FUSE filesystem relying on git-annex

Christophe-Marie Duquesne chm.duquesne at gmail.com
Thu Mar 31 18:56:54 CEST 2011


I am currently writing a FUSE file system based on git-annex for
replicating binary files on several machines. I thought I could share
it here in order to get some ideas and contributors.

What are your goals?
Seamless synchronization "à la dropbox".
Ability to use with big binary files such as mp3/movies.
Entirely decentralized.
Don't use unnecessary space
Keep it simple: avoid special VCS commands and keep a filesystem
interface as much as possible.

Because sparkleshare and dvcs-autosync are bad at versioning binary files
Because Unison needs disk space for each couple of hosts it
synchronizes and thus does not really scales for more than 2 hosts
Because Coda is not completely decentralized and it bothers me

What do you have?
A python implementation. It is about 600 sloc, and you'll find it on
Be careful, it is very alpha and it still does not have a proper
conflict handler.

Hey, but copying is slow!
On my machine, copying files to a sharebox fs is about 10 times slower
than copying it on a normal fs. All the time is spent in python's
os.write(): I guess the only way to work around this problem is to
rewrite the whole thing in C, but I am keeping this for later.

What are your plans?
1) Finish the python implementation and make it stable enough for my
everyday use.
2) Switch to C and rewrite the whole thing to make it fast, and
backward compatible with the python version.

I am interested in:
- suggestions for the functional design (I have my ideas, but I'd love
to be challenged).
- suggestions for the code design

Christophe-Marie Duquesne

More information about the vcs-home mailing list