DoC Computing Support Group


Setting up a Personal Subversion Repository

These instructions are for setting up a personal subversion repository in your DoC home dir, and are based on the subversion book at

http://svnbook.red-bean.com/en/1.2/

1. decide what directory will be used to store the repository. For example, suppose I decide that I want to store my repository in:

   /homes/dcw/svn.repository 

2. create the empty repository.

   svnadmin create  /homes/dcw/svn.repository

3. now, to populate the repository with an empty project [one repository can contain many projects], choose a suitable name, eg "memlib" for a C memory allocation library:

   mkdir /tmp/EEK
   cd /tmp/EEK
   mkdir trunk branches tags

4. create any initial files inside "trunk". In the memlib example, I copied an existing Makefile, mem.c, mem.h and README from ~dcw/src/C/mem:

   cd trunk
   cp ~dcw/src/C/utils/mem/{README,Makefile,mem.[ch]} .

5. now, to import /tmp/EEK into your repository as a new memlib project:

   svn import /tmp/EEK file:///homes/dcw/svn.repository/memlib
            -m "initial import"

6. now, create a subversion working area containing memlib [the svn co line is a single long line]:

   mkdir ~/svn-working-area
   cd ~/svn-working-area
   svn co    svn+ssh://svnuser.doc.ic.ac.uk/homes/dcw/svn.repository/memlib

7. If you are doing this from offsite/your laptop and your username on that machine is different from your DoC username, use the username@server form, for instance:

   svn co svn+ssh://dcw@svnuser.doc.ic.ac.uk/....

8. from that moment on, you may use all the usual svn commands without giving a URL when you're cd'd inside a working copy of memlib or any other project you've checked out. For instance:

   cd ~/svn-working-area/memlib/trunk
   svn up
   svn stat
   svn diff
   svn ci
   svn add {file or directory name}
   svnlook tree

Note that you MUST keep the repository and the working area SEPARATE, even if both live in your home dir..

Also, you can even use subversion from Windows, using TortoiseSVN, an excellent SVN manager for Windows: see http://tortoisesvn.net. Eclipse has the Subclipse plugin to connect Eclipse seamlessly to your repo.

The above svn+ssh URL should work fine from any internet connected machine in the world.

Finally, to avoid each svn command prompting you for your DoC password (because it uses ssh behind the scenes), on a DoC linux machine use "kinit", enter your College/Linux password, then you'll have a kerberos ticket which ssh will use for the next 9 hours. From offsite, you can create a personal ssh DSA key and set your remote machine up with ssh-agent. Look up the details yourself - or contact CSG for assistance..

 
 

guides/version-control/svn-personal (last edited 2009-12-03 17:17:16 by dcw)