Subversion
|
- This article is about the computer software framework named "Subversion." For information on the undermining of authority, see rebellion, sabotage, and insurgency.
Subversion (also known as svn) is a version control system designed specifically to replace CVS, which is considered to have many deficiencies.
Contents |
Features
Version 1.0 of Subversion (released 23 February, 2004) offers the following features:
- Most current CVS features
- Directories, renames, and file metadata are versioned
- Commits are truly atomic
- 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 (constant time) 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
- Parsable output (including XML log output)
- Open Source licensed — "CollabNet/Tigris.org Apache-style license"
Version 1.1 added these features among others:
- Internationalised 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
Related Software
GUI front-ends/clients
- RapidSVN (http://rapidsvn.tigris.org/) cross-platform (Linux, Win32) GUI front-end written in C++ using the wxWidgets framework
- eSvn (http://esvn.umputun.com/) Qt-based client
- JSVN (http://jsvn.alternatecomputing.com/) Java swing client
- TortoiseSVN (http://tortoisesvn.tigris.org/) Windows shell (i.e. Explorer) extension
- svnX (http://www.lachoseinteractive.net/en/community/subversion/svnx/features/) 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.
- gsvn (http://gsvn.tigris.org/) mostly abandoned by its original authors, due to lack of time; written entirely in python, using GTK
- SmartSVN (http://www.smartcvs.com/smartsvn) multi-platform (java based) client for Subversion; work in progress at the time of the writing.
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 Revision control and a comprehensive list of systems at Category:Version control systems.
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 Subclipse (http://subclipse.tigris.org) project integrates Subversion into Eclipse.
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 JavaSVN (http://tmate.org/svn/) project - 100% pure Java Subversion client library.
For a partial list of projects using SVN, see Category:Projects using Subversion.
External links
- Subversion has an IRC channel on irc.freenode.net #svn (irc://irc.freenode.net/#svn).
- Subversion home page (http://subversion.tigris.org/)
- The Dmoz entry for Subversion (http://dmoz.org/Computers/Software/Configuration_Management/Tools/Subversion/)
- Browse the Subversion repository (http://svn.collab.net/repos/svn/)
- The Subclipse SVN plugin for Eclipse (http://subclipse.tigris.org)
- Version Control with Subversion (http://svnbook.red-bean.com/en/1.1/index.html) (previous version 1.0 (http://svnbook.red-bean.com/en/1.0/index.html))
- dyna.org/Developers/subversion Comparison between CVS and SVN commands (http://www.joestump.net/913108051/subversion-vs-cvs-review.html)cs:Subversion
de:Subversion (Software) fr:Subversion (logiciel) lt:Subversion ja:Subversion pl:Subversion sk:Subversion