Version control

VCS – distributed (Git) or centralized (Subversion)

Centralized – keeps the history of changes on a central server -> everyone sharing the server also shares everyones work

  • + allows more access control via folder permissions
  • + allows checkout of just needed sub tree

Distributed – everyone has a local copy of the entire work’s history -> not necessary to be online to commit changes. “Distributed” comes from the fact that there isn’t a central entity in charge of the work’s history, so that anyone can sync with any other team member.

  • + faster and easier to work with when it comes to creating and merging branches and tags
  • – doesn’t allow partial check out of the repository

The difference between GIT and SVN
a)      Git is less preferred for handling extremely large files or frequently changing binary files while SVN can handle multiple projects stored in the same repository.
b)      GIT does not support ‘commits’ across multiple branches or tags.  Subversion allows the creation of folders at any location in the repository layout.
c)      Gits are unchangeable, while Subversion allows committers to treat a tag as a branch and to create multiple revisions under a tag root.