Using Subversion

These are some notes on using the subversion (svn) version control system for the game group project class.


The prototype repository location is


You will need to replace the <username> with your UMBC username, and the <project> with your project name. The project names are

Game <project>
Conduit conduit
Derelict derelict
Detached detached
Earn Your Wings wings
First Person Flight flight
NOM! nom
Paper Pugilist pugilist
Penance penance
Puzzle Box box
Shoot Me Plenty smp
Time Bloke bloke
Umbrella umbrella

Normal svn usage has your main project under <project>/trunk, branches from the main project (e.g. for some experimental feature) under <project>/branches, and specific named releases (e.g. demo, alpha, beta, final) under <project>/tags. I have created this structure for each project (the svn repository address above is for the trunk). Merging branches back into the trunk is tricky in svn, so I don't expect many of you will use them, though if you are comfortable enough with svn, you certianly can. I do expect that every project will have tags to keep track of what you showed at the various milestones.


There are several ways you can talk to the svn repository, but they all support the same basic operations:

Get a new copy of your repository to start working
Send your changes back to the repository. Don't forget to include a good short message
Get someone elses committed changes that have happened since your checkout or last update. You can also update to a specific version, though I'll usually do this in a fresh checkout to avoid losing work.
Tell svn to start tracking a file. It isn't in the repository until you commit
Remove the file (duh!). It'll only be removed on the repository after you commit, and only for that version forward. You can still find the file if you update to a version when the file existed.
SVN keeps a list of files and patterns to ignore (e.g. any file ending in .o). Keeping a good up-to-date ignore list can keep you from accidentally checking in files svn shouldn't track

Most svn commands will require you to type in your password at least one, sometimes several times. I'm working on fixing that, hopefully by the time prototypes are done. For now, you'll get really good at typing your password.


On Windows, I recommend using TortoiseSVN. Right click on the desktop to check out a copy of your repository. After that, all svn commands are available by right-clicking in a Windows directory window for your project.


Unlike Windows, the command-line tools (see below) come with the MacOS, but no spiffy easy-to-use user interface. There's nothing free that is as good as TortoiseSVN. There are a couple svn tools you can buy that are reported to be pretty good, but I haven't tried them. What I use is a free application called SourceTree. It is actually designed for git and mercurial, but you can check out an svn repository by using the regular svn url, and telling it to convert locallyto git. Be sure when you commit to check the "Push commits immediately to Subversion" box! If you do not, you will need to click the "Push" arrow to actually complete the commit.

Command Line

If you are comfortable working in a unix, mac or windows command line, all of the subversion operations have command-line equivalents:

svn checkout ...
svn commit ...
svn update ...
svn add ...
svn remove ...

To find out more about any of these, use 'svn help' (just 'svn help', or specifics with 'svn help update')