Opentopia Directory Encyclopedia Tools

Subversion (software)

Encyclopedia : S : SU : SUB : Subversion (software)



 

"SVN" redirects here. For , see .

Subversion is an open source application used for revision control. It is sometimes abbreviated to 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.

Features

Repository access

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

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

License

Subversion is distributed under an Apache/BSD-style license. Some have critcized the license for being incompatible with the GPL version 2, although version 3 of the GPL is expected to solve the problem.

Layers

Subversion is composed internally of several libraries arranged as layers. Each performs a specific task and allows developers to create their own tools at the desired level of complexity and specificity.

Fs
The lowest level, it implements the versioned filesystem which stores the user data.
Repos
Concerned with the repository built up around the filesystem. It has many helper functions and handles the various 'hooks' that a repository may have e.g. scripts that are run when an action is performed. Together, Fs and Repos constitute the "filesystem interface".
mod_dav_svn
Provides WebDAV/DeltaV access through Apache 2.
Ra
Handles "repository access", both local and remote. From this point on, repositories are referred to using URL's i.e file
Client, Wc
The highest level. It abstracts repository access and provides common client tasks e.g authenticating the user, comparing versions. The Wc library is used by Client to manage the local working copy.

Filesystem

The Subversion filesystem is described as a "three dimensional" filesystem. Since most representations of a directory tree (e.g tree view) are two dimensional, the added dimension is that of revisions. Each revision in a Subversion filesystem has its own root, which is used to access contents at that revision. Files are stored as links to the most recent change, thus a Subversion repository is quite compact. The storage space used is equivalent to the changes made, not the number of revisions.

The Subversion filesystem uses transactions to keep changes atomic. A transaction is begun from a specified revision of the filesystem, not necessarily the latest. The transaction has its own root, on which changes are made. The transaction is then either committed and becomes the latest revision, or is aborted. The transaction is actually a long-lived filesystem object. A client does not need to commit or abort a transaction itself. A client can begin a transaction, exit, and then another client (perhaps the same program) can re-open the transaction and continue using it.

Properties

One important feature of the Subversion filesystem is properties, simple name=value pairs of text. Properties are used in two different places in the Subversion filesystem. The first is on filesystem entries i.e files and directories. These are versioned just like other changes to the filesystem. Users can add any property they wish, and the Subversion client uses a set of properties, which it prefixes with 'svn:'.

svn
executable
svn
mime-type
svn
ignore
svn
keywords
svn
eol-style
svn
externals
svn
needs-lock
svn
special
Properties are also placed on revisions, usually storing the date, author, and description of a change. These properties are not versioned and can be changed later.

Related software

Other projects of note

  • [Subversive] Subversion plug-in for Eclipse providing similar to CVS support.
  • 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".
  • Information currency svn ([icsvn])command-line client.
  • [svnmerge], which helps keep track of what changes what merges have and have not occurred on branches.
  • [SVNManager], SVNManager is a webbased tool to administer a Unix Apache WebDAV Subversion repository server.

Users

Although as of 2006 Subversion is less widely used than the traditional CVS, adoption is increasing, and it is perhaps the most popular alternative. Projects using Subversion include the Apache Software Foundation, KDE, GCC, R, Python, Samba, Mono, PuTTY, Zope, Xiph, GnuPG, CUPS, Wireshark, TWiki, Ruby on Rails, and many others. Many projects have migrated to Subversion due to the comprehensive project management solution Trac, which requires Subversion.#redirect [[Template:fact]]

See also

References and notes

  • 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)

External links

[[Portal:}}}|}}} Portal]]

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.


Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: