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.
Table of 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.
- I18Ned program messages
Version 1.2 (will be released around May/June 2005):
- File locking for unmergeable files
Subversion has an IRC channel on irc.freenode.net (#svn).
Related Software
GUI front-ends/clients
- RapidSVN cross-platform (Linux, Win32) GUI front-end written in C++ using the wxWidgets framework
- eSvn Qt-based client
- JSVN Java swing client
- TortoiseSVN Windows shell (i.e. Explorer) extension
- 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.
- gsvn mostly abandoned by its original authors, due to lack of time; written entirely in python, using GTK
- SmartSVN multi-platform (java based) client for Subversion; work in progress at the time of the writing.
Alternatives
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 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 project – 100% pure Java Subversion client library.
External links
- Subversion home page
- The Dmoz entry for Subversion
- Browse the Subversion repository
- The Subclipse SVN plugin for Eclipse
- Version Control with Subversion
- dyna.org/Developers/subversion Comparison between CVS and SVN commands
Categories: Version control systems