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.
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
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
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
vcs-home mailing list