Subversion

From ArgeoWiki

Jump to: navigation, search
Subversion
Web site http://subversion.tigris.org
All third party software

Source code management system, used to version code or documents. Often called SVN as well.

Most important principles

Subversion basically stores and manages diffs between versions of the files or tree structure in a repository.

The data of the repository contains all the required information and can be accessed directly without a server layer (protocol file://). The repository can also be shared and accessed through the network using either a specific server svnserve (protocol svn:, svn+ssh:) or an Apache httpd web server (protocol http:, https:).

The user interface to a repository is called a working copy. This is a local copy of the files at a given revision. The files or the tree structure are modified locally and changes are committed to the repository in atomic transactions.

A working copy is managed via a client tool (some of them listed below).

Subversion can managed different codelines in parallel, that can be branched/merged from/to another. By convention, the main codeline is called trunk and is located under <project root URL>/trunk. This is where the active developments takes place.

Branches are other codelines located under <project root URL>/branches/<branch name>. Typical examples of branches are:

  • the code of the stable versions (maintenance streams) where only bug fixes take place while the new features are added in trunk (development stream)
  • the code of individual developers, so that they can try changes without impacting others
  • the code of big changes that needs to be isolated so that other developments can take place in the trunk without being impacted

Tags are read-only codelines, located under <project root URL>/tags/<tag name>. They are typically used to label the state of a given codeline at the moment a release is created.

See Subversion Usage In Argeo in order to know how to name branches and tags.

More details on Subversion in the Subversion documentation.

Client tools

  • TortoiseSVN : extends the Windows Explorer in order to provide all required client features
  • Command line tools : the svn command line client provide all features on the command line. Other tools such as svnadmin allow to create and manage repositories
  • Subclipse : Eclipse plugin
  • Zend : Apparently SVN integration is available in Zend professional edition ([1])

Useful links

Personal tools