This is an old revision of the document!


How to use version control (and why)

Version control is a way to develop software in a scalable way. Even if you are the only person working on a project, it enables you to write code with more confidence, as you know you have every change tracked - no more wondering what you did which broke everything, as you can find out easily. You can also tag points in development for retrieval later on - it's a good idea to do this before working on big structural changes which could cause instability while you work on them.

Version control can be also be used in order to share development between groups of people, up to hundreds of developers. It takes care of merging all the changes together (which often worries people new to version control) but it generally works well, and if it finds a confusing case (normally where two developers have changed the same line of code) it asks you to confirm what it's doing.

Before we get into using svn, there are some basic usage patterns which are common to all revision control systems. You get the most out of version control if you make it part of your daily programming routine.

The general idea is that code lives on a remote server, and you keep a local copy of the source on your hard drive. You edit files as normal then 'commit' changes to the remote server. You also need to periodically update your code to get changes other people have made.

The smaller the changes that you check in are, the less hassle you will cause for yourself and other people.

I've set up the lirec svn repository with a dummy project called sandbox that you can play with and break to your heart's content. This guide is written for the commandline version of svn, if you use Windows and prefer buttons to press, read through this document anyway and then have a look at Tortoise SVN. I'll update this with a guide for using that as soon as I get myself a Windows install.

Firstly svn likes to know what editor you like to use so it can launch it to ask you to input comments for your code commits. Put this in your .bashrc:

export EDITOR=vi

Or the equivalent in windows [TODO].

Firstly go to a directory where you want to keep your code and run:

svn checkout --username your-lirec-username http://svn.lirec.eu/

Obviously replacing “your-lirec-username”. The username is required to link the changes you make to you.

cd into 'sandbox' and edit the impressive application you'll find there. When you've saved run:

svn commit

This will pop up the editor you specified earlier. Add a nice informative message (you should always add a message saying why you've made the change). Save the file, and close the editor. If all is well, your change is now on the svn server.

svn add filename

Will add individual files, or recursively add files in a directory.

svn mkdir mydirectory

Will make a new empty directory registered with svn.

svn mv /path/to/file /another/path/to/file

Will move or rename a file.

svn update
  • lirec/version_control_guide.1233759289.txt.gz
  • Last modified: 2009-02-04 14:54
  • by davegriffiths