It has many helper functions and handles the various "hooks" that a repository may have, e.g., scripts that run when an action is performed. Repos Concerned with the repository built up around the filesystem. Each performs a specific task and allows developers to create their own tools at the desired level of complexity and specificity.įs The lowest level it implements the versioned filesystem which stores the user data. Internally, a Subversion system comprises several libraries arranged as layers.
The Berkeley DB backend was deprecated in version 1.8. 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).
No data loss or corruption occurs, but the repository remains offline while Berkeley DB replays the journal and cleans up any outstanding locks.
Subversion has some limitations with Berkeley DB usage when a program that accesses the database crashes or terminates forcibly. The original development of Subversion used the Berkeley DB package. Subversion offers two types of repository storage.
Full MIME support – users can view or change the MIME type of each file, with the software knowing which MIME types can have their differences from previous versions shown.Language bindings for C#, PHP, Python, Perl, Ruby, and Java.File locking for unmergeable files ("reserved checkouts").
Open source licensed – Apache License since the 1.7 release prior versions use a derivative of the Apache Software License 1.1.Parsable output, including XML log output.Costs proportional to change size, not to data size.Client/server protocol sends diffs in both directions.Natively client–server, layered library design.Branching is a cheap operation, independent of file size (though Subversion itself does not distinguish between a branch and a directory).There is also an independent server process called svnserve that uses a custom protocol over TCP/IP. Apache HTTP Server as network server, WebDAV/ Delta-V for protocol.Native support for binary files, with space-efficient binary-diff storage.Users can move and/or copy entire directory-trees very quickly, while retaining full revision history.