Jump to content

Apache Subversion

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mpeg4codec (talk | contribs) at 23:18, 20 May 2006 (Repository access: Fixed a typo). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Subversion
Developer(s)CollabNet, Inc.
Stable release
1.3.1 / April 3 2006
Repository
Operating systemLinux, Windows, Mac OS X
Typerevision control
LicenseApache/BSD Style
WebsiteSubversion Home

Subversion is an open source application used for revision control. It is sometimes known as svn in reference to the name of its command line interface. Subversion is designed specifically to be a modern replacement for CVS and shares a number of the same key developers.

Improvements over CVS

Subversion was created as a replacement for CVS. Its improvements include:

  • Atomic commits. Interrupted commit operations do not cause repository inconsistency or corruption.
  • Renamed/copied/moved/removed files retain full revision history.
  • Native support for binary files, with space-efficient binary-diff storage.
  • Directories are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history.
  • Constant time branching and tagging.
  • Optimized repository accesses. This reduces unnecessary network traffic to the repository host.
  • Full MIME support - the MIME Type of each file can be viewed or changed, with the software knowing which MIME types can have their differences from previous versions shown.

Features

Version 1.3 (released 1 January, 2006):

  • Path-based authorization for svnserve
  • Improved logging and repository listing in mod_dav_svn
  • Hugely improved Python and Ruby bindings
  • A handful of new command line switches
  • Some client and server performance improvements
  • Many improved APIs
  • More than 30 new bugfixes

Version 1.2 (released May 2005):

  • File locking for unmergeable files ("reserved checkouts")
  • Full WebDAV auto-versioning

Version 1.1 added these features among others:

Version 1.0 of Subversion (released 23 February, 2004) offers the following features:

Repository access

As of version 1.3, Subversion repositories can be accessed by the following means:

  • Local filesystem or network filesystem,[1] accessed by client directly.
  • WebDAV/DeltaV (over http or https) using the mod_dav_svn module for Apache 2.
  • Custom "svn" protocol, either plaintext or over SSH.

All three means can access both FSFS and Berkeley DB repositories.

GUI front-ends/clients

Other projects of note

  • The open source Subclipse project integrates Subversion into Eclipse.
  • The open source JavaSVN project is a 100% pure Java Subversion client library.
  • SVN Importer is a free tool for importing content from other version control systems to a Subversion (SVN) repository
  • CIA is a piece of software that notifies people of repository activity. It is named after the CIA because its role is to "keep an eye on subversion".
  • The open source Subversive plugin for Eclipse.
  • svnmerge, which helps keep track of what changes what merges have and have not occurred on branches.

See also

References and notes

  1. ^ Berkeley DB relies on file locking and thus should not be used on (network) filesystems which do not implement them
  • C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick; Version Control with Subversion; O'Reilly; ISBN 0596004486 (1st edition, paperback, 2004, full book online at http://svnbook.red-bean.com/)
  • Garrett Rooney; Practical Subversion; Apress; ISBN 1590592905 (1st edition, paperback, 2005)
  • Mike Mason; Pragmatic Version Control Using Subversion; Pragmatic Bookshelf; ISBN 0974514063 (1st edition, paperback, 2005)
  • William Nagel; Subversion Version Control: Using the Subversion Version Control System in Development Projects; Prentice Hall; ISBN 0131855182 (1st edition, paperback, 2005)