Hacker News new | ask | show | jobs
by georgemcbay 4886 days ago
Lots of posts in here talking about how Dropbox isn't for version control and "just use git" and such, but the systems aren't mutually exclusive and so these comments aren't helpful, IMO. Just because Dropbox isn't a proper version control system doesn't mean it isn't (or couldn't be) useful for developers.

I use git daily but I also use a syncing program (first Live Mesh, then Dropbox, now Google Drive) to sync my source code directories. This isn't at all for version control but rather so I can change systems nearly instantly without having to check everything in to a remote git server. This allows me to not care if I'm working on one of my two laptops or my desktop, all my code is Just There whenever I need to switch. With a pure git solution I'd have to push changes that may or may not be a fully coherent change set each time I switched machines.

Anyway, my point is that all of the OP's arguments are still valid when you are using git+dropbox, which is a perfectly reasonable thing to expect to do.

FWIW, all of the major sync systems have issues here (my biggest pet peeve with Live Mesh was that it would hold locks on files for an abnormally long time which would stop me from being able to compile while .o files were being synced, for example). But Dropbox's probably are the most annoying since you have so little control over what does and doesn't sync beyond the root sync directory.

4 comments

That may work for the lone developer, but what happens when you're on a team with shared Dropbox folders, all working on the same code base concurrently. I understand your reasoning, and I'm not trying to say you are incorrect in doing this as it's a very legitimate use case. It is, however, important to understand that using Dropbox in this way, in the context of syncing the git repo for teams, is a step backwards.
It makes no difference if I'm working alone or on a team. Syncing locally changes nothing about my source code control usage. I'm still pushing my changes into a shared repo (on a remote server) when it is time to do that, but since I'm syncing locally (including my .git directory usually) I can push from any one of three different machines, whichever I happen to be working on when it is time to do the push.
I understand this, which is why I specifically said it wasn't wrong. Just saying that serious issues could arise when a less experienced developer shares their Dropbox folder and others treat that folder as their own clone of the repository. This should never happen because we know better, but the realist in me says its inevitably going to happen at some point.
Yeah that's a potential problem if people are doing that. I certainly don't recommend sharing a repo directory among multiple people via Dropbox.

I don't share my sync folders publicly at all, they exist only for my own convenience when it comes to switching between different systems as needed.

He's not talking about syncing a git repo for multiple developers with it. He's talking about syncing his work with it. Of course it's not a replacement for a centralized git repo.
The only thing Dropbox has over git is the auto-syncing, which will soon no longer be the case (http://www.kickstarter.com/projects/joeyh/git-annex-assistan...).

Does Dropbox do merging? Does it track history? Can you run it on server(s) of your choice? Can you setup Dropbox for centralized or distributed operation? Can you inspect the source for security holes? Can you write third party clients, servers, plugins, etc for it?

For once, the headline is perfect: true in every respect and descriptive of the article.

Did you read the comment above you? As a person who bounces around between computers, the syncing part is much more than a "whatever" and, while git-annex-assistant looks cool, it will be some time before I trust it with my most valued documents. Further, niceties like access to code on my iPad, etc, are continued benefits of services like Dropbox.
Did you even read what I wrote?

My whole post was based on the premise that using Dropbox (or another similar sync program) and git (or another similar version control system) aren't mutually exclusive. Yet you continue to make it an either/or argument.

Yes, they aren't mutually exclusive; but I just don't see the point of Dropbox at all.

Edit: The fact that Dropbox won't merge just seems to me like going backwards, and makes it utterly useless for syncing, IMHO. Since git will merge, and it syncs, why do you need Dropbox?

The point of Dropbox is the same point of git-annex-assistant. The fact that project exists proves there is a desire for this functionality.
But the biggest thing annex-assistant adds is the automation of syncing; syncing is already builtin to git.

Edit: sorry for being so tendentious (yes, I like big words :). I'm just really having a hard time "getting" Dropbox as it seems like a poor, closed source replacement for rsync. Git can be used as a glorified rsync that will resolve 90% of multiply edited files, plus it gives you change history, and you're not locked into one company. I understand that git doesn't run on the iPad, but that sounds like a problem with the iPad, not git ;) Git runs fine on not just my Android devices, but my Maemo devices as well.

They are very useful, but for different kinds of data.

I keep my source in git, so I get proper versioning, commits, etc.

I keep all my stuff - data files, notes, documentation, agreements, tool installations, ebooks, tools/code made by others in dropbox, so they are the same everywhere.

But the git folders are outside of dropbox. The version control takes care of syncing the code, but there are all kinds of .gitignored files such as IDE path configuration and compiled binaries that differ (and must differ) between my computers. Heck, even most of the code files are different, because their line endings are converted to win or unix style.

Curious, why would you use different line endings? What IDE doesn't have that setting in its config?
Using dropbox to sync code for the purpose of quickly switching between machines seems like asking for trouble when there are network problems or conflicts...
Syncing your files between your devices is Dropbox's raison d'etre.