Version control systems (VCS) are the lifeblood of any developer, and while the field might be a bit divided among Git and SVN enthusiasts (no mention for you, mercurial guys), the basic functionalities are still the same.
Let's quickly go over the differences between each VCS and the advantages and disadvantages of each.
Subversion (SVN) is a powerful system and has been around for quite some time, is very well known, and is and widely used.
SVN is a centralized VCS; by this we mean that there is single main source that is recognized as "good" all developers' checkout and push changes to and from this central source.
While this makes changes easier to track and maintain, it has a serious disadvantage. As it is centralized, it means that we have to be in constant touch with the central repository, working remotely or without an Internet connection, which is not possible. This is illustrated in the following figure: