Subversion (also known as svn, the name of its command line interface tool) is a version control system designed specifically to be a modern replacement for Concurrent_Versions_System, which is considered to have many deficiencies.
= Features =
Version 1.0 of Subversion (released 23 February, 2004) offers the following features:
Most current CVS features
Directories, renames, and file Metadata (computing) are versioned
Commit (data management)s are truly Atomic (computer science)
Apache HTTP server as network server, WebDAV/DeltaV for protocol (there is also an independent server Process that uses a custom protocol over TCP/IP)
Branching and tagging are cheap (Computational complexity theory) operations
Natively client/server, layered library design
Client/server protocol sends Diffs in both directions
Costs are proportional to change size, not data size
Efficient handling of binary files
Parsing output (including XML log output)
Open Source licensed — CollabNet/Tigris.org Apache-style license
Version 1.1 added these features among others:
Internationalization and localization program messages
Versioning of symbolic links
A new Repository format, FSFS, which doesn t use a database backend, instead storing the revisions as plain files in the file system.
Version 1.2 (released May 2005):
File locking for unmergeable files ( reserved checkouts )
Full WebDAV autoversioning
= Related Software =
== GUI front-ends/clients ==
[http://rapidsvn.tigris.org/ RapidSVN] Cross-platform (Linux, Win32) GUI front-end written in C plus plus using the WxWidgets framework
[http://esvn.umputun.com/ eSvn] Qt toolkit-based client
[http://jsvn.alternatecomputing.com/ JSVN] Java programming language Swing (Java) client
[http://tortoisesvn.tigris.org/ TortoiseSVN] Microsoft Windows shell (i.e. Windows Explorer) extension
[http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ svnX] Mac OS X GUI front-end to svn
AnkhSVN is a Visual Studio .NET addin. It allows you to perform the most common subversion operations from directly inside the VS.NET IDE.
[http://gsvn.tigris.org/ gsvn] mostly abandoned by its original authors, due to lack of time; written entirely in python, using GTK
[http://www.smartcvs.com/smartsvn SmartSVN] multi-platform (java based) client for Subversion; work in progress at the time of the writing.
[http://scplugin.tigris.org SCPlugin] Mac OS X plug-in for the Macintosh_Finder
== Alternatives ==
There are many other version control systems some of which aim to fulfill the same goals as Subversion does. More information about these goals can be found at .
== Other projects of note ==
The open source Trac project integrates Subversion, an issue tracker, and Wiki functionality into one web-based interface.
The open source [http://subclipse.tigris.org Subclipse] project integrates Subversion into Eclipse_(computing).
The open source SVK project is a decentralized version control system written in Perl, permitting offline operations and advanced merging algorithms. It layers on the Subversion filesystem and its API.
The open source [http://tmate.org/svn/ JavaSVN] project is a 100% pure Java_programming_language Subversion client library.
For a partial list of projects using SVN, see .
= External links =
Subversion has an Internet relay chat channel on Freenode [irc://irc.freenode.net/#svn #svn].
[http://subversion.tigris.org/ Subversion home page]
[http://dmoz.org/Computers/Software/Configuration_Management/Tools/Subversion/ The Dmoz entry for Subversion]
[http://svn.collab.net/repos/svn/ Browse the Subversion repository]
[http://subclipse.tigris.org The Subclipse SVN plugin for Eclipse]
[http://svnbook.red-bean.com/ Version Control with Subversion home page], free book. Releases of this book exist for [http://svnbook.red-bean.com/en/1.1/index.html Subversion 1.1], and [http://svnbook.red-bean.com/en/1.0/index.html Subversion 1.0]
[http://www.linux.ie/articles/subversion/ Subversion - a better CVS]
[http://www.joestump.net/913108051/subversion-vs-cvs-review.html dyna.org/Developers/subversion Comparison between CVS and SVN commands]
[http://software.newsforge.com/article.plsid=05/06/02/1454229&tid=130 Version Control for non-programmers with Subversion]
[http://www.svnforum.org Subversion Forum - SVNForum.org]
[http://blog.markwshead.com/archives/2005/09/21/backing-up-subversion-automatically.html Scripts to Automatically Backup and Verify Subversion Repositories]
[http://iedb.org/blog/page_id=8 Step by Step Installation Guide for Subversion on Linux and Solaris]
= References =
C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick; Version Control with Subversion; O Reilly; ISBN 0596004486 (1st edition, paperback, 2004)
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)