Subversion Repositories

Introduction

Subversion is a popular centralized version control system which began as a replacement to CVS, an aging version control system. Subversion requires the use of one master repository — in the case of Unfuddle, hosted in your account. Each user can then checkout and commit changes from and to that master repository.

Access

Unfuddle offers you direct access to your Subversion repository over https for all plans. Once you have the Subversion client installed on your development machine, accessing your project repository is simple.

svn checkout https://subdomain.unfuddle.com/svn/subdomain_abbreviation/ local_directory_name

NOTE: subdomain and abbreviation must be replaced with values appropriate to your account and repository.

Please also note that you will have to enter your username and password for authentication.

Importing

If you wish to begin using Subversion for your existing project, you will need to first follow the checkout instructions above then move your project files into the newly created directory (your working copy). Once you have done this, simply add the files (svn add) then commit (svn commit) them to the Unfuddle repository.

If you have an existing Subversion repository which you would like to move to Unfuddle, please see the following on how to dump your existing repository and load it into a new Unfuddle repository:

  1. Create the repository in your Unfuddle account. This will ensure that you have an empty repository in which to load your dump file. Then make note of the repository's URL as you will need this in the steps below.
  2. Create a Subversion repository locally using "svnadmin create localrepo"
  3. Load your modified dump file into this repository using "svnadmin load /path/to/localrepo < /path/to/dump"
  4. Sync your local repository to your Unfuddle repository. To do this run the following two commands:
    $ svnsync initialize --sync-username UNFUDDLE_USERNAME https://SUBDOMAIN.unfuddle.com/svn/SUBDOMAIN_REPOABBREVIATION file:///path/to/localrepo
    $ svnsync synchronize --sync-username UNFUDDLE_USERNAME https://SUBDOMAIN.unfuddle.com/svn/SUBDOMAIN_REPOABBREVIATION

However, do note that you can also sync your existing Subversion repository without the need to import its dump locally. If your existing repository is hosted somewhere else, accessible at https://SOURCE_REPO_URL, run the following:

$ svnsync initialize --sync-username UNFUDDLE_USERNAME --sync-password UNFUDDLE_PASSWORD --source-username SOURCE_USERNAME --source-password SOURCE_PASSWORD https://SUBDOMAIN.unfuddle.com/svn/SUBDOMAIN_REPOABBREVIATION https://SOURCE_REPO_URL
$ svnsync synchronize --sync-username UNFUDDLE_USERNAME --sync-password UNFUDDLE_PASSWORD https://SUBDOMAIN.unfuddle.com/svn/SUBDOMAIN_REPOABBREVIATION

This can be tricky, so please let us know if you have trouble with this and we will be happy to assist you.

Additional Resources

For more information on how to use Subversion, we recommend the free "Subversion Book" (http://svnbook.red-bean.com/) as well as the excellent Pragmatic Version Control Using Subversion by the Pragmatic Programmers.