svn

Topics related to svn:

Getting started with svn

Apache Subversion (SVN) is a universal and centralized open source version control system. Subversion is currently a project under Apache Software Foundation (ASF) and is licensed under the Apache License, Version 2.0.

Subversion is designed to manage and control files and directories and track changes made to them; it acts as a reliable time machine and management tool for the collaboratively developed projects. It can easily answer the standard questions any version control system has to answer reliably. For example,

  • How did the project/file FOO look like on 12/12/2012 ?
  • What changes were introduced by USERNAME or on 20/12/2012 ?
  • Who modified the particular string since the last review?
  • and much-much more.

Branching, shelving and tagging in Apache Subversion

As you might have noticed, we use svn copy command to create branches, tags and shelves (we'll skip mentioning tags and shelves in the next paragraphs). This is the same command used to copy items in your working copy and into the repository.

svn copy is used for branching because, branch is technically a copy of the source you copy from. However, this is not an ordinary copy are familiar with when copying files on your local file system. Branches in Subversion are so called "Cheap Copies" that are similar to symlinks. Therefore, creating a new branch takes minimal time to complete and takes practically no space in the Subversion repository. Create branches and use them for any change you want regardless of the change's size and scope.

svn copy can be shortened to svn cp as Subversion has aliases for most commands.

Administering SVN