[1] Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation.
The open source community has used Subversion widely: for example, in projects such as Apache Software Foundation, FreeBSD, SourceForge, and from 2006 to 2019, GCC.
Subversion was created by CollabNet Inc. in 2000, and is now a top-level Apache project being built and used by a global community of contributors.
Subversion has some limitations with Berkeley DB usage when a program that accesses the database crashes or terminates forcibly.
No data loss or corruption occurs, but the repository remains offline while Berkeley DB replays the journal and cleans up any outstanding locks.
The safest way to use Subversion with a Berkeley DB repository involves a single server-process running as one user (instead of through a shared filesystem).
It works faster than the Berkeley DB backend on directories with a large number of files and takes less disk space, due to less logging.
Newer clients and servers have additional features and performance capabilities, but have fallback support for older clients/servers.
A new branch or tag is set up by using the "svn copy" command, which should be used in place of the native operating system mechanism.
However, Subversion may become confused when a move conflicts with edits made elsewhere,[36] both for regular commits and when merging branches.
[38] The Subversion 1.8 release addressed some of these problems by making moves a first-class operation on the client, but it is still treated as copy+delete in the repository.
[40] Subversion stores additional copies of data on the local machine, which can become an issue with very large projects or files, or if developers work on multiple branches simultaneously.
In versions prior to 1.7 these .svn directories on the client side could become corrupted by ill-advised user activity like global search/replace operations.
[43] To mitigate this, third-party tools exist that allow for preserving modification time and other filesystem meta-data.
Ben Collins-Sussman, one of the designers of Subversion, believes a centralised model would help prevent "insecure programmers" from hiding their work from other team members during development.
Instead of implementing tags as references to points in history, Subversion recommends making snapshot copies into a well-known subdirectory ("tags/") in the space of the repository tree.
[50] CollabNet has continued its involvement with Subversion, but the project runs as an independent open source community.
[52] In October 2009, WANdisco announced the hiring of core Subversion committers as the company moved to become a major corporate sponsor of the project.
Work announced in 2009 included SubversionJ (a Java API) and implementation of the Obliterate command, similar to that provided by Perforce.
The 1.7 release of Subversion in October 2011 included a streamlined HTTP transport to improve performance and a rewritten working-copy library.