14. December 2012

Version Control on Top of Dropbox

Suppose, two people are working together on a set of files. How to find a version control solution that is accessible for everyone (such as Dropbox) and powerful enough for sharing code (such as git)?

Consider a scenario where two people are working together on a small piece of software. One person is the domain expert without sufficient knowledge to handle a version control system like git efficiently. The other person is the programming expert who knows how to handle git and uses it for tracking down bugs and keeping track of revisions. How to share the software code between those two?

What to do? Dropbox alone is not sufficient for the programmer. Using git exclusively boils down to having the domain expert learn how to use git. In situations where the latter is overkill, we might just place a git repository in a shared Dropbox folder. This allows us to use some of the power of a true version control system while not losing the accessibility of Dropbox.

Some of the extra benefits include: the programmer can inspect changes to the shared Dropbox folder since the last commit to the git repository via git diff. Revisions can be tagged and restored completely. Of course, there are many drawbacks and the proposed solution will only work for certain use cases. The key question is whether the Dropbox synchronization might interrupt and disturb updates to the git repository that were intended to be atomic in nature. However, if only one of the people actually handles the git repository, such problems should not occur. In case of several persons, I would stay away from using Dropbox and git.