How ICE uses the Subversion version control system for its repository

ICE uses Subversion to handle repository services.

To get started you need to check out some content from a svn server. ICE can do this for you if you set the repository url parameter:

repository_url=http://ice.usq.edu.au/svn/ice/trunk/sample-content

Set the parameter in the config.txt file, and when you start ICE it will check out the content if you do not already have a working copy. At this staqe we only support checkout via local file access or via HTTP. There is also a configuration parameter in config.txt that specifies whether ICE should request authentication details from the user. ICE authenticates against the HTTP server that the content came from.

When you run the ICE web application, you tell it where the working copy is using the repository_path parameter in config.txt. If you install ICE you should be able to point it at any svn working copy that has been checked out over HTTP or using a local repository. If you use both repository path and repository_url then they need to match each other (ie the checked-out content is from the repository URL) or ICE will not run.

When you click refresh ICE is hard-wired to look for OpenOffice.org Writer files (version 0.1 used .sxw files, this version uses .odt files), and to automatically render them to HTML and extract embedded images. It stores all metadata, renditions and extracted images using subversion properties so an ICE-ized svn working copy looks no different to any other collection of files unless you look at the properties.

For example, take one of the sample files that comes with ICE. You can ask svn what properties are there using svn proplist:

$ svn proplist module01.odt 
Properties on 'module01.odt':
  rendition-.xhtml.body
  meta-links
  meta-style
  meta-title
  svn:mime-type
  meta-images
  _propList_
  meta-lastSaved
  rendition-.ALL.txt
  image-m638bc800.gif

The sync button performs an update / commit / update cycle. To resolve conflicts it just takes your version of a file. In future it will allow two classes of user, one whose changes always override more recent changes in the repository and the other whose changes are discarded.

For practical advice about how to set up a repository for ICE see the instructions.

If you are from USQ then we have a repository already set up. Contact the ICE team for help.