Skip to main content
TrustRadius
Apache Subversion

Apache Subversion

Overview

What is Apache Subversion?

Apache Subversion is a version control option that is free to download and open source under the Apache 2.0 license.

Read more
Recent Reviews

TrustRadius Insights

Apache Subversion is widely used by various teams and organizations for version control and code management. One common use case is in web …
Continue reading

Git >>>>>>> Subversion

7 out of 10
January 19, 2015
Subversion used to be our main version control software before we started using GitHub. But after introduction of Git, we stopped using …
Continue reading
Read all reviews
Return to navigation

Pricing

View all pricing
N/A
Unavailable

What is Apache Subversion?

Apache Subversion is a version control option that is free to download and open source under the Apache 2.0 license.

Entry-level set up fee?

  • No setup fee

Offerings

  • Free Trial
  • Free/Freemium Version
  • Premium Consulting/Integration Services

Would you like us to let the vendor know that you want pricing?

9 people also want pricing

Alternatives Pricing

What is GitLab?

GitLab DevSecOps platform enables software innovation by aiming to empower development, security, and operations teams to build better software, faster. With GitLab, teams can create, deliver, and manage code quickly and continuously instead of managing disparate tools and scripts. GitLab helps…

What is Redgate SQL Toolbelt Essentials?

Redgate's SQL Toolbelt Essentials includes industry-standard tools for SQL Server development & deployment, enabling users to include SQL Server databases in agile processes and enabilng developers to embed robust and scalable development practices.

Return to navigation

Product Details

What is Apache Subversion?

Apache Subversion is a version control option that is free to download and open source under the Apache 2.0 license.

Apache Subversion was designed to be a full featured and better version of CVS. Its features include:

  • Most CVS features - CVS is a relatively basic version control system. For the most part, Subversion has matched or exceeded CVS's feature set where those features continue to apply in Subversion's particular design.
  • Directories are versioned - Subversion versions directories as first-class objects, just like files.
  • Copying, deleting, and renaming are versioned - Copying and deleting are versioned operations. Renaming is also a versioned operation, albeit with some quirks.
  • Free-form versioned metadata ("properties") - Subversion allows arbitrary metadata ("properties") to be attached to any file or directory. These properties are key/value pairs, and are versioned just like the objects they are attached to. Subversion also provides a way to attach arbitrary key/value properties to a revision (that is, to a committed changeset). These properties are not versioned, since they attach metadata to the version-space itself, but they can be changed at any time.
  • Atomic commits - No part of a commit takes effect until the entire commit has succeeded. Revision numbers are per-commit, not per-file, and commit's log message is attached to its revision, not stored redundantly in all the files affected by that commit.
  • Branching and tagging are cheap (constant time) operations - Branches and tags are both implemented in terms of an underlying "copy" operation. A copy takes up a small, constant amount of space. Any copy is a tag; and if you start committing on a copy, then it's a branch as well. (This does away with CVS's "branch-point tagging", by removing the distinction that made branch-point tags necessary in the first place.)
  • Merge tracking. - Subversion 1.5 introduces merge tracking: automated assistance with managing the flow of changes between lines of development, and with the merging of branches back into their sources. The 1.5 release of merge tracking has basic support for common scenarios.
  • File locking - Subversion supports (but does not require) locking files so that users can be warned when multiple people try to edit the same file. A file can be marked as requiring a lock before being edited, in which case Subversion will present the file in read-only mode until a lock is acquired.
  • Symbolic links can be versioned - Unix users can place symbolic links under version control. The links are recreated in Unix working copies, but not in win32 working copies.
  • Executable flag is preserved - Subversion notices when a file is executable, and if that file is placed into version control, its executability will be preserved when it it checked out to other locations. (The mechanism Subversion uses to remember this is simply versioned properties, so executability can be manually edited when necessary, even from a client that does not acknowledge the file's executability, e.g., when having the wrong extension under Microsoft Windows).
  • Apache network server option, with WebDAV/DeltaV protocol - Subversion can use the HTTP-based WebDAV/DeltaV protocol for network communications, and the Apache web server to provide repository-side network service. This gives Subversion an advantage over CVS in interoperability, and allows certain features (such as authentication, wire compression) to be provided in a way that is already familiar to administrators
  • Standalone server option (svnserve) - Subversion offers a standalone server option using a custom protocol, since not everyone wants to run an Apache HTTPD server. The standalone server can run as an inetd service or in daemon mode, and offers the same level of authentication and authorization functionality as the HTTPD-based server. The standalone server can also be tunnelled over ssh.
  • Parseable output - All output of the Subversion command-line client is carefully designed to be both human readable and automatically parseable; scriptability is a high priority.
  • Localized messages - Subversion uses gettext() to display translated error, informational, and help messages, based on current locale settings.
  • Interactive conflict resolution - The Subversion command-line client (svn) offers various ways to resolve conflicting changes, include interactive resolution prompting. This mechanism is also made available via APIs, so that other clients (such as graphical clients) can offer interactive conflict resolution appropriate to their interfaces.
  • Repository read-only mirroring - Subversion supplies a utility, svnsync for synchronizing (via either push or pull) a read-only slave repository with a master repository.
  • Write-through proxy over WebDAV - Subversion 1.5 introduces a write-through proxy feature that allows slave repositories (see read-only mirroring) to handle all read operations themselves while passing write operations through to the master. This feature is only available with the Apache HTTPD (WebDAV) server option.
  • Natively client/server, layered library design with clean APIs - Subversion is designed to be client/server from the beginning; thus avoiding some of the maintenance problems which have plagued CVS. The code is structured as a set of modules with well-defined interfaces, designed to be called by other applications.
  • Binary files handled efficiently - Subversion is equally efficient on binary as on text files, because it uses a binary diffing algorithm to transmit and store successive revisions.
  • Costs are proportional to change size, not data size - In general, the time required for a Subversion operation is proportional to the size of the changes resulting from that operation, not to the absolute size of the project in which the changes are taking place.
  • Bindings to programming languages - The Subversion APIs come with bindings for many programming languages, such as Python, Perl, Java, and Ruby. (Subversion itself is written in C.)
  • Changelists - Subversion 1.5 introduces changelists, which allows a user to put modified files into named groups on the client side, and then commit by specifying a particular group. For those who work on logically separate changesets simultaneously in the same directory tree, changelists can help keep things organized.

Apache Subversion Technical Details

Deployment TypesOn-premise
Operating SystemsWindows, Linux, Mac
Mobile ApplicationNo
Return to navigation

Comparisons

View all alternatives
Return to navigation

Reviews and Ratings

(57)

Community Insights

TrustRadius Insights are summaries of user sentiment data from TrustRadius reviews and, when necessary, 3rd-party data sources. Have feedback on this content? Let us know!

Apache Subversion is widely used by various teams and organizations for version control and code management. One common use case is in web development, where it serves as a reliable system to track code changes and maintain a centralized repository for shared code. According to users, Apache Subversion is highly effective in providing revision control and the ability to track commits, making it an essential tool in software projects.

One of the standout features of Apache Subversion is its interactive conflict resolution, which greatly aids in resolving conflicts during collaboration. This feature has been praised by users for its ability to streamline the process of merging changes made by multiple team members. Additionally, Apache Subversion is commonly employed to manage multiple releases in parallel, ensuring that old code doesn't inadvertently get included with new releases.

The integration with issue tracking systems like Redmine further enhances the usefulness of Apache Subversion. By associating issues with their respective commits, developers can easily keep track of bug fixes and other changes related to specific tasks or problems. This integration facilitates efficient collaboration within teams and improves overall project management.

At the academic level, many computer-related courses make Apache Subversion a mandatory tool for version control. Students benefit from using the system to track code revisions and collaborate on group projects. Similarly, in organizational settings, Apache Subversion is chosen by software departments across multiple countries to facilitate collaboration on large-scale projects. As a collective tool for version tracking and code management, Apache Subversion ensures that revisions are properly tracked by development teams.

Overall, Apache Subversion offers a powerful solution for managing source code, enabling parallel changes and the ability to revert back if necessary. It has become an indispensable tool used by various teams and organizations for effective code management and collaboration.

Stability: Many users have praised Apache Subversion for its stability, with some mentioning that they have experienced almost zero downtime over several years of usage. This reliability has made it a preferred choice compared to newer version control systems.

End-to-End Visibility: Reviewers appreciate the end-to-end visibility of all changes in the project provided by Subversion. This feature allows for effective revision control and makes it easier to track down and resolve conflicts.

Integration and Extensibility: Several users have mentioned that Subversion's integration with tools like Redmine and its ability to be extended using scripting languages like Perl are valuable features. These integrations enhance productivity and simplify workflow management.

Less flexibility compared to Git: Some users have found Apache Subversion to be less flexible compared to Git, which is the preferred choice for distributed development and provides more flexibility for software developers and teams.

Performance of SVN pulls and commits: The performance of SVN pulls and commits is not considered a strength by some users. They have experienced slower checkout, update, and commit speeds, especially on Windows.

Lack of third-party tools for code visualization: Users have expressed dissatisfaction with the lack of third-party tools available to visualize commits for a codebase, particularly across branches. This limitation can hinder their ability to track changes effectively.

Based on user reviews, there are three common recommendations for this software:

  1. Try the software for group QAs of living documents, especially if tracking history is important. It provides end-to-end visibility of each commit and makes it easy to track delta changes.

  2. Consider the integration with Intellij. Many users find it convenient and user-friendly.

  3. Utilize version control features and code maintenance capabilities. Users appreciate features like color coding and find it effortless to manage version control using SVN. It helps maintain code stability and ensures that test code is not left in deployments.

These recommendations emphasize the software's strengths in facilitating collaborative document review, its integration with Intellij, and its robust version control and code maintenance capabilities.

Attribute Ratings

Reviews

(1-2 of 2)
Companies can't remove reviews or game the system. Here's why
January 19, 2015

Git >>>>>>> Subversion

Score 7 out of 10
Vetted Review
Verified User
Subversion used to be our main version control software before we started using GitHub. But after introduction of Git, we stopped using subversion drastically . We only have a few old code projects which are still on subversion. We have decided to go ahead with Git for all new projects.
  • User friendly and easy to learn and understand
  • Free software
  • Easy to keep track of code versions
  • Not distributed like Git
  • Git more user friendly and advanced. Git has lot more features .
If the code versioning is only needed between a few developers (with not much collaboration) and company cannot afford to buy GitHub License.
  • Better code management
  • Saved money since it is free
  • Increased productivity
Git is better than Subversion in every aspect except that is not free . But since our company has bought Git licenses and I would not go back to using Subversion .
If given an option of using Git, I would not use Subversion .
Scott Mitting | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User
  • The default conflict resolution option, to merge locally, has led to a much more efficient work environment when working with large teams on large codebases. The traditional single-person file locking can really get in the way of team work, as you have to wait for your team member to finish their changes before you can start working on the same file, even if they called in sick for work that day. While sometimes this requires manually figuring out what to do when two changes affect the same line of code, most of the time the changes are on the same lines of the file, and merging can happen transparently.
  • I have enjoyed the branching process in subversion. Branches and tags are not strict features of the product, which allows for fudgibility, but when you use the recommended trunk/tags/branches folder layout, it behaves as if it was built it. Implemented simply as copy/branch and merge functions, I have found them to work just as well as a built it system would work, and it does a good job pointing out issues with a change's ancestry.
  • Subversion also have a rich ecosystem of third-party tools and service providers. I personally have used TortoiseSVN for years, but there are several plugins that integrate directly into Visual Studio or Eclipse. Also, I have found hosting services like CVSDude (now called CloudForge) to be a big time-saver over hosting a repository on your own servers, while providing peace of mind that your code-base is in a different physical location, in case say, your server farm burned down. (I'd call that a serious edge condition, but my job involves edge conditions!)
  • At times, locking problems can be difficult to solve. This normally happens you make a mistake, like attempting to update a folder that has running executables within it. Often times, you can just unlock a parent folder and you' are all set, but on more than one occasion I have had to recheckout a folder because I could not resolve the lock, even after rebooting.
  • Looking up the history of a file can be very slow, taking several minutes, especially when looking at the history of an entire folder.
  • Novice users of subversion often make the mistake of dragging folders in Windows that are managed by subversion. This does not cause the folder to move in the svn repository, which can lead to serious confusion why a user's folder structure does not seem the synchronize correctly with other users. To an advanced user, this can be a very useful feature, but absolutely hell for the novice.
  • I have not found any third-party tools yet that let me visualize the commits for a codebase, particularly across branches. This may be partially because of the slow history I already pointed out, but I believe it's because I have not been willing to even look at the multi-thousand dollar code management solutions I have seen advertisements for in the past.
I would only consider not recommending Subversion if the development department adheres to what I call the "One Microsoft Way" (a play on words of Microsoft's address). Many IT departments prefer to go completely by the book on all procedures related to IT. While that is justifiable if you consider what to do if the entire programming department quit without notice, Subversion offers too many advantages to not consider seriously as a better replacement for Microsoft's standard source code repository solutions.
  • Compared to the much more expensive Microsoft Team Foundation Server, I have found Subversion to be a much more flexible and efficient solution for large teams to work on a codebase.
  • While it's not as GUI intensive for document storage as solutions like Box, I feel that once users get over the learning curve, it could be an excellent way to share corporate documents on user's machines if a more traditional file server is not an option.
  • Of course, free software doesn't mean there is no cost or investment, but when using third-party hosting with subversion, the maintenance costs become negligible.
While there are interesting alternatives, such a GIT, Subversion has been a breath of fresh air compared to its predecessors like CVS or Microsoft Source Safe (now called Team Foundation Server). Its ease of use and high adoption rate is going to keep me using this product for years to come.
Return to navigation