[Freedombox-discuss] Hackfest Fodder: FBX as a DropBox Replacement

Nick Daly nick.m.daly at gmail.com
Fri May 25 12:11:09 UTC 2012


So, we've had many requests for a functional-replacement for DropBox.
Last night, I might've figured out a way to leverage existing tools to
do this pretty easily.  It needs more thought, and maybe there are
better ways to do this, but that's what this email thread is all about.
If we get a working proposal, somebody (or a group of somebodies) can
run with it during the hackfest, or even before then.

Dropbox is nothing more than a synced folder, from what I understand.
We have a lot of tools to synchronize folders.  We have fewer tools to
do this magically, in the background.  A shared-drive wouldn't work,
there's no guarantee you're always connected.  This actually looks
like a really similar problem to distributed-revision control.

So, if the FBX is the central (always updated) DVCS server, this
becomes pretty easy: just make your DropBox folder a repository and
push to the server when you change files.  Nice, but not very
automatic.  This is where the neatest Mercurial (or Git/Bzr/Mtn)
Extension ever comes into play: inotify [0].

inotify notifies the repository whenever files are changed.  If you
react to that notification by adding new files, committing changes,
and pushing out to the remote repository (say, every 5 minutes or so),
then you've just built DropBox.  Oddly, though, it's better: since
it's a repository, sharing the repository with other folks will no
longer hose everything if they move stuff around or delete things; you
can always recover it from previous revisions.

Can anyone look into making a script that reacts to the inotify events
and another script that correctly configures a folder to be that sort
of repository?  The second script is probably easier, it just needs to
call out to the inotify extension and the other script.

Nick

0:
http://hgbook.red-bean.com/read/adding-functionality-with-extensions.html#sec:hgext:inotify



More information about the Freedombox-discuss mailing list