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

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 .

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

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)"

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

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.



11 Comments

  • b00let 7 May, 2011, 16:55

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

  • Bobby Jack 2 November, 2011, 16:25

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

  • Paul 12 January, 2012, 7:44

    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 14 January, 2012, 23:50

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

  • João Craveiro 24 March, 2012, 1:19

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

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

  • Social Crunching 8 May, 2012, 12:58

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

  • CodeBalt 15 August, 2012, 7:12

    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…

  • nocans 18 August, 2012, 22:27

    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!

  • CS 28 August, 2012, 17:29

    Good informative post.

  • Mike 11 January, 2013, 3:46

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

  • Speaktek 15 May, 2013, 21:20

    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.

Leave a Reply

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

Note

To post source code in comment, use [code language] [/code] tag, for example:

  • [code java] Java source code here [/code]
  • [code html] HTML here [/code]

Current day month ye@r *