Revision Control

Subversion – version control system

Subversion, also known as SVN, is a version control system much like the Concurrent Versions System (CVS). Version control systems allow many individuals (who may be distributed geographically) to collaborate on a set of files (typically source code). Subversion has all the major features of CVS, plus certain new features that CVS users often wish they had.

Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code and have many features that are specific to software development – such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files.

The Subversion project produces Subversion’s core libraries, a fully functional command line client (svn), repository administration programs, API bindings for various languages (Perl, Python, Java, Ruby, etc.), and various additional tools and scripts.

Subversion is widely used in open source projects, such as KDE, Apache, gcc, Python, Ruby, ExtJS, Free BSD and many more.

Key Features

  • Two types of repository storage are available:
    • FSFS (Fast Secure File System).
    • Berkeley DB.
  • Commits are true atomic operations. Interrupted commit operations do not cause repository inconsistency or corruption.
  • Renamed/copied/moved/removed files retain full revision history.
  • Directories, renames, and file metadata (but not timestamps) are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history.
  • Versioning of symbolic links.
  • Native support for binary files, with space-efficient binary-diff storage.
  • 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 operations, independent of file size, though Subversion itself does not distinguish between a tag, a branch, and a directory.
  • Natively client/server, layered library design.
  • Client/server protocol sends diffs in both directions.
  • Costs are proportional to change size, not data size.
  • Parsable output, including XML log output.
  • Internationalized program messages.
  • File locking for unmergeable files (“reserved checkouts”).
  • Path-based authorization.
  • PHP, Python, Perl, and Java language bindings.
  • Full MIME support – the MIME Type of each file can be viewed or changed, with the software knowing which MIME types can have their differences from previous versions shown.

Website: subversion.apache.org
Support: Version Control with Subversion
Developer: Apache
License: Apache License 2.0

Subversion is written in C. Learn C with our recommended free books and free tutorials.


Related Software

Revision Control Tools
GitUsed in high profile open source projects, most notably the Linux kernel
JujutsuPowerful version control system for software projects
MercurialFast, lightweight Source Control Management system
SubversionGeneral system that can be used to manage any collection of files
DarcsAn advanced revision control system
FossilDistributed version control system
datDistributed data community for the next generation Web
SaplingScalable, user-friendly source control system
PijulSound and fast distributed version control system
CVSConcurrent Versions System
BreezyDecentralized revision control system supporting Bazaar and Git formats
MonotoneEspecially strong in its support of a diverge/merge workflow
Game of TreesPrioritizes ease of use and simplicity over flexibility

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments