Wales Group Version control
As of 16th July 2008, all the group code is under version control. GMIN, OPTIM and PATHSAMPLE, along with the CHARMM and AMBER code used with them have been added to the repository, along with the official documentation. Changes to the documentation in the repository are automatically applied to the version on the website every night (at midnight) and the RSS feeds below are updated every ten minutes. The next step is to set up the nightly compilation and test suite for each code.
There are instructions on how to set up your SVN details and obtain the group code on the SVN setup page.
RSS feeds
RSS feeds (including diffs of files that have been changed) are generated every 10 minutes from the SVN log files any uploaded to the Wales group web server here. There is currently one feed per top level directory in the repository:
- trunk_log.xml - contains the logs/diffs for every change to the code
- gmin_log.xml - only contains the logs/diffs when code in the GMIN directory is changed
- pathsample_log.xml - only contains the logs/diffs when code in the PATHSAMPLE directory is changed
- optim_log.xml - only contains the logs/diffs when code in the OPTIM directory is changed
- charmm_log.xml - only contains the logs/diffs when code in the CHARMM31 directory is changed
- amber_log.xml - only contains the logs/diffs when code in the AMBER directory is changed
- nab_log.xml - only contains the logs/diffs when code in the NAB directory is changed
- disconnect_log.xml - only contains the logs/diffs when code in the DISCONNECT directory is changed
- doc_log.xml - only contains the logs/diffs when code in the DOC directory is changed
- scripts_log.xml - only contains the logs/diffs when code in the SCRIPTS directory is changed
- ambertools_log.xml - only contains the logs/diffs when code in the AMBERTOOLS directory is changed
Using Firefox to look at the feeds is ok, but I suggest you set up a different RSS reader, such as Google Reader to keep them all in one place. Note that Google Reader has a delay in updating the feeds, so you won't see new logs up to an hour after they are created and are visible with Firefox.
Access restrictions
Raven authentication has been re-enabled for the diffs only. You can view the feeds without logging in (as this allows email clients to be used), but if you are outside the department, you will need to log in via Raven to access the diffs linked from the feed. Also, the diffs directory is now excluded from Google and other bot searches. This should hopefully prevent chunks of code ending up on Google.
Usage tips
What follows are a few suggestions to make using SVN a joyful experience. Please add any others you think are important! In general you should:
- make sure you followed the setup instructions on the SVN setup page. The procedure includes setting up a template file to ensure that all logs are in the same basic format
- run 'svn update' on a regular basis to ensure you have the latest bug fixes
- always do an 'svn update' before you do 'svn commit'
- don't forget 'svn add <filename>' to schedule a new file for addition at the next commit!
- get into the habit of running 'svn diff' before committing. And looking closely at the output... Optionally, run 'svn diff | grep Index' to see a summary list of the files that you have changed. Try not to commit extra things you didn't mean to.
- commit your changes regularly. If you wait a two months before commit your changes, you're likely to have to resolve more conflicts in parts of the code that has been changed by others in the meantime.
- if you get a conflict (C flag) when running 'svn update', find out who introduced the change and talk to them about it to make sure you can introduce your code without damaging theirs.
- consider making a development branch (more on this on the SVN setup page) if your hacking is going to involve a lot of potentially disruptive changes over a significant period of time. Talk to DJW and current developers about this first though...
Papers
We have a repository for preparing papers too: see Papers_in_preparation for information.