Recently, the popular Cloud based startup Dropbox is getting lot of attention on Internet. It is a free file synchronization/backup service where you can backup, save and share files. Dropbox gives 2 GB of free space to every user where one can save / backup their files. One of the interesting usage of Dropbox can be to use it as Subversion Repository to store your projects. We can create a local SVN repository on Dropbox which can be synchronized on Cloud by Dropbox. You can checkout this repository and add your projects / files into it. This way you can access your project anywhere. Also it is possible to share your repository with other users if you want to. Simply by sharing Dropbox folder where you have stored subversion repository can enables you to share it with other users. Here is an example of hosting a local SVN repository on Dropbox.
Step 1: Create Dropbox repository
If you are using subversion command line utilities in Windows or using Unix box, we can create a new subversion repository by usingCode language: Shell Session (shell)
cd ~Dropbox mkdir SVNRepository cd SVNRepository
If you are using TortoiseSVN client then you may want to create repository using following: Right-click on the newly created folder SVNRepository and select TortoiseSVN → Create Repository here…. We just created a Subversion repository on top of Dropbox folder. Don’t edit those files yourself!!. If you get any errors make sure that the folder is empty and not write protected.Code language: Shell Session (shell)
svnadmin create .
Step 2: Checkout Dropbox repositoryOur Dropbox repository is ready and we can do checkin / checkout in this now. Before we add any project / files in this repository, we need to make sure we add proper directory structure in this SVN repository. It is a good practice to divide an SVN repositories in three directory: trunk, branches and tags. First create a working folder where you want to checkout your SVN repository.
This will checkout the newly created repository in folder MyWorkspace. Now create 3 directories in MyWorkspace: trunk, branches and tags and commit the change back to repository.Code language: Shell Session (shell)
mkdir ~MyWorkspace cd MyWorkspace svn checkout file:///~Dropbox/SVNRepository
Code language: Shell Session (shell)
mkdir trunk mkdir branches mkdir tags svn commit -m "Initial setup (committing trunk, branches, tags)"
Step 3: Checkout Trunk of Dropbox SVN repositoryWe are done with the setup.. Just checkout the Trunk of this newly created SVN repository and start committing your changes.
That’s it. Now you can checkout the SVN repository “file:///~Dropbox/SVNRepository/trunk” anywhere and commit your changes to it. Ofcourse this is now hosted on Dropbox so you can easily synchronize your changes between different computers. You can also share this repository with other Dropbox users letting them SVN your repository access.Code language: Shell Session (shell)
svn checkout file:///~Dropbox/SVNRepository/trunk
I wonder how this combination of svn on top of dropbox would ever solve conflicts and generally such concurent access related issues
Nice little tutorial. I’m a bit confused, however, as to how this will work when accessing dropbox from multiple systems. For example, the repository root is tied to the filesystem it was created on, and I’m guessing won’t work if that changes.
BTW, you missed out one thing in part 2 of step 2: “svn add branches trunk tags” before the “svn commit …”
The follow issue happens when I try svn checkout file:///~Dropbox/SVNRepository
svn: Unable to open an ra_local session to URL
svn: Unable to open repository ‘file:///~Dropbox/svn’
Use the full path to your Dropbox folder instead of ~
Probably the problem is that it should read ~/Dropbox instead of ~Dropbox
~Dropbox is “the home directory for the user called Dropbox” :-)
This is a very nice usage of the cloud storage. Thanks for sharing mate!!
Thanks for this article, as a freelance solo Developer this solution is perfect for me, as I really just want to have the Repository remote from my development machine. Seems a bit daft to have the source control stored locally…
This is really pointless as dropbox already has revision control built in. However, checking code out to a dropbox is not a bad idea, since it will allow you to share the code with svn nubs that may need to make changes, while keeping everything synced,comittable and updatable. w00tz!
Good informative post.
Seems pointless to me. Why not setup a free account on bitbucket and use a real vcs server?
Here’s one application that works for me.
In our case…I wanted the Sales team to use SVN for certain docs (Price sheets and such)…but a bit over there head.
I setup an Auto SVN like this:
– Created a REPO in my SVN server.
– Checked out repo into a DB folder call AutoSVN.
– I run EasySVN on my PC, which auto commits and updates the REPO.
With he ‘Auto’, there are no log comments, but not critical for these particular docs.
The Sales guys use the DB folder…and simply maintain the file name of those docs that need version control such as price sheets.
The reason for using SVN is to share code also.
But the solution seem to be live only for storing code.