According to the Subversion web site, “The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.” Enough said.


  • Newer than CVS and RCS.

  • Simpler and arguably easier to understand and use than CVS (less historical baggage).

  • Atomic commits means the commit either fails or succeeds as a whole, and makes it easy to track the state of an entire project as a single revision.

  • Easy to access remote repositories.

  • Allows easy renaming of files and directories while retaining history.

  • Easily handles binary files (no native diff support) and other objects such as symbolic links.

  • Central repository hacking is more officially supported, but less trivial.


  • Not 100 percent CVS compatible for more complicated projects (e.g., branching and tagging).

  • Can be more complicated to build or install from scratch due to many dependencies. Use the version that came with your operating system if possible.


SVN tracks revisions by repository, which means that each commit has its own internal SVN revision number. Thus consecutive commits by a single person may not have consecutive revision numbers since the global repository revision is incremented as other changes (possibly to other projects) are committed by other people.


This example is not suitable for enterprise or multiuser access (see the “See Also” section for links to more information). This is just to show how easy the basics are. This example also has ...

Get bash Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.