A, the SVN

SVN (Subversion) is a centralized version control system, and only a single server is used to centrally manage and save the revised versions of all files.

The co-developers connect to the server via a client to retrieve the latest files or submit updates.

Note: VCS means Version control System

Disadvantages: The most obvious disadvantage of a centralized version control system is the single point of failure of a central server. If it’s down for an hour, no one can commit an update and no one can work together during that hour.

If the disk on which the central database is located is corrupted and not backed up properly, you will no doubt lose all your data — including the entire change history of the project, leaving only individual snapshots that people keep on their machines.

Second, the Git

In order to solve the disadvantages of centralized version control system, distributed version control system came into being. Git represents a distributed version control system.

In such systems, such as Git, Mercurial, Bazaar, and Darcs, the client doesn’t just take a snapshot of the latest version of the file, but mirrors the entire repository, including a full history.

This way, a failure of any of the co-operating servers can be later recovered using any of the mirrored local repositories.

Because every clone is actually a complete backup of the code repository.

Third, summary

  • The SVN is a centralized version control system and centrally managed by a single server. If the central server fails, the code repository may fail to recover.

  • Git is a distributed version control system. Every client is a complete mirror of the repository, and even if the server fails, the repository can be recovered from any client.

Reference Documents:

About Version Control