Subversion (software)
From Free net encyclopedia
{{Infobox Software | name = Subversion | logo = | screenshot = | caption = | developer = | latest_release_version = 1.3.1 | latest_release_date = April 3 2006 | latest_preview_version = | latest_preview_date = | operating_system = Linux, Windows, Mac OS X | platform = | genre = revision control | license = Apache/BSD Style | website = Subversion Home }}
Subversion is an open source system for revision control, sometimes known as svn from 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.
Contents |
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/(re)moved 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.
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:
- Internationalised program messages
- Versioning of symbolic links
- A new repository format, "flat filesystem" (FSFS), which doesn't use a Berkeley database backend, instead storing the revisions as plain files in the file system.
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 operations
- 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"
Repository access
As of version 1.3, Subversion repositories can be accessed by the following means:
- Local filesystem (FSFS and Berkeley DB) or network filesystem (FSFS only), 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.
Related Software
GUI front-ends/clients
- AnkhSVN is a Visual Studio .NET addin. It allows you to perform the most common Subversion operations from directly inside the VS.NET IDE.
- eSvn, a Qt-based Subversion client.
- gsvn, mostly abandoned by its original authors, due to lack of time; written entirely in python, using [[GTK+]].
- JSVN, a proof-of-concept Java Swing client.
- kdesvn, a another Subversion client for KDE.
- RapidSVN, a cross-platform (Linux, Win32) GUI front-end written in [[C++]] using the wxWidgets framework.
- SCPlugin, a Mac OS X plug-in for the Finder.
- SmartSVN is a cross-platform (Linux, Mac OS X, Win32) client for Subversion; available as a free Foundation version and as a commercial Professional version. It makes use of the JavaSVN library, a 100% pure Java implementation of Subversion.
- Subcommander, a cross-platform (Linux, Win32, Mac OS X) GUI front-end written in [[C++]] using the Qt framework.
- svnX, a Mac OS X GUI front-end to command line Subversion.
- TortoiseSVN, a Windows shell (i.e. Explorer) extension.
- Insurrection Web interface for Subversion.
- WebClient for SVN an open source cross-platform (Linux, Win32, Mac OS X) Subversion web client written in Java/JSP. It offers a convenient way of browsing the repository content and its history plus simple write operations.
- ZigVersion, a commercial Mac OS X Subversion client.
Other projects of note
- A list of revision control software
- 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 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. It provides access to Subversion from Eclipse.
References
- 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)
External links
- Subversion home page
- Subversion has an IRC channel on irc.freenode.net #svn.
- The Dmoz entry for Subversion
- Browse the Subversion repository
- The Subclipse SVN plugin for Eclipse
- "Version Control with Subversion" home page, free book. Releases of this book exist for Subversion 1.1, and Subversion 1.0
- Subversion - a better CVS
- dyna.org/Developers/subversion Comparison between CVS and SVN commands
- Version Control for non-programmers with Subversion
- Subversion Forum - SVNForum.org
- Scripts to Automatically Backup and Verify Subversion Repositories
- Step by Step Installation Guide for Subversion on Linux and Solaris
- Combined Subversion and CVS tutorial
- Bugzilla/SVN/Wiki integration, a step-by-step guide
- The Top Ten Subversion Tips for CVS Users
- Subversion for CVS Userscs:Subversion
de:Subversion (Software) es:Subversion fr:Subversion (logiciel) ko:Subversion lt:Subversion ja:Subversion pl:Subversion pt:Subversion ru:Subversion sk:Subversion zh:Subversion