Using DropBox to back up your Source Control repository

15. January 2013 14:28 by Parakh in Cloud Storage, DropBox, Source Control, SVN  //  Tags: , , , ,   //   Comments
Let cloud storage take care of automatically backing up your source control repository.

In organizations of every size, code is generally managed with the help of source control. It is great for keeping a versioned history and doing branched modifications. The code repository is generally kept in a regularly backed up environment, having someone caring for it with all their wit and skills. But the same level of service and peace of mind is not available to the same set of developers working on their weekend projects on their personal computers. Granted they can have the source control, but having a service regularly taking back-up of your repository can be hard; sometimes because of lack of time and/or storage media and at other times because backup is fragmented at different places and we do not have any idea of the whereabouts of the latest one. Cloud storage removes this obstacle and allows us to take care of automatic backups, in fact, instantaneous backups of the repository, whenever anything in repository is revised or added, without the hassle of handling any storage media. This has been made possible fundamentally by the fact that most of the cloud storage services provide a client application that can watch over a certain folder for any changed and/or new bits of information.

Here I will be covering on how to make DropBox’s Windows client application take care of a Tortoise SVN repository.

myImage

Figure 1 Conceptual diagram

Steps involved:

1. Install DropBox’s client application, appropriate for your operating system, with advanced parameters, specifying the name and location of the DropBox folder and choosing selective sync. If you have multiple accounts, make sure you provide the credentials of the account where you want a copy of the repository to be stored.

clip_image001

Figure 2 Advanced installation

 

clip_image002

Figure 3 Location of backed up folder

 

clip_image003

Figure 4 Using selective sync to better use your storage space

 

clip_image005

Figure 5 Installed directory

2. Install Tortoise SVN with default parameters.

3. Go to the folder that is being watched by the DropBox client service for any updates or additions and make a new folder in which you want the repository structure housed.

clip_image007

Figure 6 Create repository in DropBox folder

4. Right click on the folder and create a new repository there. Tortoise SVN will create a new repository there (there will be folders like conf, db etc.). You will be storing your code in this repository.

clip_image009

Figure 7 Create repository

 

clip_image011

Figure 8 Resultant repository structure

5. Once you create a new repository, DropBox application will immediately start synchronizing the backup folder with the one on its servers, replicating the entire repository structure.

6. Now navigate to the location to where you want to have your working copy of code. You have to create a working copy in which you will later be checking in your code and any new assets that you want added to your repository.

clip_image013

Figure 9 Check out from your repository

7. Finally you can add folders which can contain your projects. See the final result. (Create new folder –> Add to repository –> Commit to repository)

clip_image015

Figure 10 Example of directory structure of working copy

8. Once you do any updates to your repository from your working copy, only the bits that change or gets added will be uploaded to your DropBox profile.

It is important to understand that you have to make a backup of the repository structure itself (i.e. the weird structure containing folders such as conf, db, hooks etc.) and not the working copy, since you can always get the working copy from the repository.

Many thanks to my brother Priyanshu Agrawal for letting me use his computer for software installation and resultant screenshots.

Month List

ParakhSinghal@Twitter.com

Note: For Customization and Configuration, CheckOut Recent Tweets Documentation