Before we dive into Git vs SVN , let us understand the types of Version Control Systems (VCS) that exist.

git-vs-svn

VCS can be broadly classified into two types –

  1. Centralized VCS (CVCS)
  2. Decentralized VCS (DCVS)

In the case of Centralized VCS, the repository – commonly called as repo – resides on a central server. To have a meaningful source control, you need to be connected to the repository all the time. Most of the commands in a CVCS would require you to contact the central repo and hence would require network access. Most importantly you cannot commit to a CVCS when you are out of network access.

In a decentralized VCS, each and every node has a copy of the repo. Your local copy is a repository, and you can commit to it and get all benefits of source control. Most of the commands on git (except the obvious – git push and git pull) can be performed without network access. When you regain connectivity to the main repository, you can commit against it and in the mean time enjoy all the benefits of the version control mechanism.

At this point in our Git tutorial series we won’t burden you with too many technical jargons but it would suffice to know these main differences between Git vs SVN.

  • Work Offline: SVN is CVCS while Git is DVCS. A repo of SVN would need seamless connectivity to the centralized database while DVCS is a great tool to work offline.
  • Fast: Since you are committing against a local copy on DVCS, various operations are fast. In a CVCS, commits  and other operations take a longer time.