How to use Dropbox as an SVN repository

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

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.

View Comments

  • 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'
    -

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

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

  • 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!

  • 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.

Share
Published by
Viral Patel
Tags: build repository dropbox subversion svn

Recent Posts

  • Java

Java URL Encoder/Decoder Example

Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…

5 years ago
  • General

How to Show Multiple Examples in OpenAPI Spec

Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…

5 years ago
  • General

How to Run Local WordPress using Docker

Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…

5 years ago
  • Java

Create and Validate JWT Token in Java using JJWT

1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…

5 years ago
  • Spring Boot

Spring Boot GraphQL Subscription Realtime API

GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…

5 years ago
  • Spring Boot

Spring Boot DynamoDB Integration Test using Testcontainers

1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…

5 years ago