How to use the Repository

The Simile Project uses the Subversion version control system (a.k.a. SVN). SVN is the evolution of CVS written by the some of the original CVS authors and some of the authors of the Apache HTTPD web server.

Subversion Clients

Plug-ins for the Eclipse IDE:

How to access the Simile Repository

Simile hosts two subversion repositories:

After you have installed the SVN client on your machine, you need to create a local copy of the repositories. To do this type:

> svn checkout http://simile.mit.edu/repository/longwell/trunk longwell
> svn checkout http://simile.mit.edu/private/

Note that the public repository uses the trunk/branches/tags layout, so if you checkout the root of the repository you end up with several copies of the same things, just in different versions. The private repository, being just a placeholder for IP-restricted data, uses one simple flat layout so you don't have that problem overthere.

> svn checkout http://simile.mit.edu/repository/longwell/trunk longwell

will checkout the longwell subfolder and recursively all its subfolders, creating a folder named longwell in your current working directory. Working on a complete repository or on just partial checkouts makes no difference since SVN stores metadata in a .svn directory alongside with the data (this replaces the CVS folders).

How to do stuff

Working with files:

  • svn add -> adds a new file to version control
  • svn delete -> removes an existing file from version control
  • svn copy src dest -> clones src into dest
  • svn move src dest -> moves src into dest

NOTE: move and copy are the most important difference between SVN and CVS. Those operations not only work on the local repository, but they also maintain the history of the file. So, it is very important that moving operations are performed with svn move rather than with your operating system regular file handling programs or SVN will not be able to recognize the move and the next update will simply reload the missing files.

Checking consistency:

  • svn update -> synchs the local repository
  • svn status -> lists the status of the local repository against the remote one (does not update!)
  • svn diff -> creates a diff of the change between the local and remote repository
  • svn revert -> undos the local operation and rolls back to the remote repository status
  • svn resolved -> indicates that a conflict state has been resolved (more explicit than CVS)

Committing results:

  • svn commit -> commits the results in the remote repository

For more information visit the Basic Work Cycle chapter of the freely available O'Reilly book on Subversion.


Back to the Main Page.