• Apache Subversion is a centralised version control system
  • All project files exist on a central repository server
  • The central repository has a “trunk” which contains the current stable version of the project
  • When working on new features, contributors can make “branches” from the trunk
  • Each branch is stored in a sub-folder on the central repository
  • When changes are ready, a branch can be merged into the trunk

SVN vs Git

SVN advantages over Git,

  • A central repo allows for granular access control (which files can be accessed by a certain contributor)
  • Simpler and easier for new users
  • Compression and efficient storage of large binaries

Git advantages over SVN,

  • With git teams can work offline
  • No single point of failure in Git
  • Git outperforms SVN when it comes to merging and conflict resolution

Usage

# clone remote repo's trunk
svn checkout <repository_url> <local_directory>
 
# pull changes since checkout
svn update
 
# modify files
svn status
svn add <file_path>
 
# Commits directly to the remote repo
svn commit -m "Descriptive Message"

Refs

  1. https://subversion.apache.org/quick-start
  2. https://www.linode.com/docs/guides/svn-vs-git/