
RubyDrop - A Ruby-based Dropbox clone that uses Git as a backend - fogus
https://github.com/meltingice/RubyDrop
======
mbudde
Sounds much like SparkeShare which also uses Git as a backend but is written
in C#/Mono:

<http://sparkleshare.org>

<https://github.com/hbons/SparkleShare>

------
adriand
Cool first Ruby project, for sure, but "Dropbox clone" is a stretch. That
phrase does help explain the idea in a nutshell, but this is essentially a
script that polls at intervals and either pulls from the remote repository, or
adds, commits, and pushes from the local one.

Incidentally, when I read the source I didn't notice any conflict handling, so
you might want to be careful if you intend on using it for anything where
conflicts are a possibility.

~~~
arethuza
"polls at intervals and either pulls from the remote repository, or adds,
commits, and pushes from the local one"

What does the dropbox client do that is significantly different from this?
Does dropbox do block level replication or something?

NB I use dropbox and like it, but I do like the idea of the server component
being completely open.

~~~
dan00
"What does the dropbox client do that is significantly different from this?"

Using inotify (linux). Polling doesn't scale.

~~~
meltingice
Yeah, I'm looking into inotify to see how I can implement that with Ruby.
Would definitely be nicer than simply polling the directory.

~~~
nixme
Try rb-inotify (linux) and rb-fsevent (os x):

<https://github.com/nex3/rb-inotify>

<https://github.com/thibaudgg/rb-fsevent>

------
varenc
Calling this a dropbox clone is making the same mistake all those before
dropbox did (and their competitors continue to make).

Dropbox wins because of its seamless it-just-works OS integration. File
syncing is the easy part!

------
yatsyk
May be it's too bold to call this project as Dropbox clone (is there native
client for major OSes?)

But there is a market for open source filesharing application for sure.

~~~
cmelbye
Well, it's Ruby and Git, so technically yes.

~~~
trezor
Im not sure I would be that bold. Here is my take on it from reddit:

[http://www.reddit.com/r/programming/comments/ebw1d/rubydrop_...](http://www.reddit.com/r/programming/comments/ebw1d/rubydrop_a_rubybased_dropbox_clone_that_uses_git/c16xv97)

------
pronoiac
Syncing a couple of gig of material via git will take up lots of CPU & memory,
including on the server, to deal with recompression & history, won't it?

~~~
meltingice
I'm considering doing a Git/rsync hybrid, or something similar to avoid this
problem.

------
samratjp
For the server git configuration part, if you're wondering how, Gitosis might
be helpful: [http://www.hackido.com/2010/01/installing-git-on-server-
ubun...](http://www.hackido.com/2010/01/installing-git-on-server-ubuntu-
or.html)

~~~
fredoliveira
Gitosis is indeed pretty good, but I've recently found better and migrated to
gitolite: <https://github.com/sitaramc/gitolite>

The flexibility is pretty neat. Being able to do brach-based ACL in particular
is killer for some environments and larger teams.

~~~
samratjp
Whoa, that is neat! Thanks for sharing this with me.

