How to use Dropbox as an SVN repository

dropbox-subversion-svnRecently, 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

cd ~Dropbox mkdir SVNRepository cd SVNRepository
Code language: Shell Session (shell)
If you are using subversion command line utilities in Windows or using Unix box, we can create a new subversion repository by using svnadmin.
svnadmin create .
Code language: Shell Session (shell)
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 TortoiseSVNCreate 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.

Step 2: Checkout Dropbox repository

Our 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.
mkdir ~MyWorkspace cd MyWorkspace svn checkout file:///~Dropbox/SVNRepository
Code language: Shell Session (shell)
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.
mkdir trunk mkdir branches mkdir tags svn commit -m "Initial setup (committing trunk, branches, tags)"
Code language: Shell Session (shell)

Step 3: Checkout Trunk of Dropbox SVN repository

We are done with the setup.. Just checkout the Trunk of this newly created SVN repository and start committing your changes.
svn checkout file:///~Dropbox/SVNRepository/trunk
Code language: Shell Session (shell)
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.
Get our Articles via Email. Enter your email address.

You may also like...

12 Comments

  1. b00let says:

    I wonder how this combination of svn on top of dropbox would ever solve conflicts and generally such concurent access related issues

  2. Bobby Jack says:

    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 …”

  3. Paul says:

    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’

    • Anonymous says:

      Use the full path to your Dropbox folder instead of ~
      e.g.: file:///home/anonymous/Dropbox/svn

  4. Probably the problem is that it should read ~/Dropbox instead of ~Dropbox

    ~Dropbox is “the home directory for the user called Dropbox” :-)

  5. This is a very nice usage of the cloud storage. Thanks for sharing mate!!

  6. CodeBalt says:

    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…

  7. nocans says:

    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!

  8. CS says:

    Good informative post.

  9. Mike says:

    Seems pointless to me. Why not setup a free account on bitbucket and use a real vcs server?

  10. Speaktek says:

    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.

  11. khan says:

    The reason for using SVN is to share code also.
    But the solution seem to be live only for storing code.

Leave a Reply

Your email address will not be published. Required fields are marked *