Version Control Software
On this page, you will find useful information about version control software. Read about the advantages and disadvantages of the most used software tools.
Definition
Version Control Software (VCS) is a beneficial tool contributing to a collaborative software team workflow. It is essential for teams with multiple developers. Each company adopts the VCS that suits its strategy best.
Below is a list of widely used VCS tools.
-
Git
Git is one of the most popular version control software available in today’s market. Git is a speedy and efficient distributed version control system that is easy to learn. It can handle projects of any size, from small to huge ones. The distinctive features of Git are the following: cheap local branching, convenient staging areas, and multiple workflows. It is free open-source software.

Cons of Git
Despite its advantages, Git also has some cons. First of all, in the case of large binary files, the support is weak. Interactions can lose their speed because of large repositories that have a huge history. Besides, commands are unpredictable.
-
CVS
CVS (Concurrent Versions System) was historically popular but is now largely obsolete, having been superseded by modern distributed systems. It helped developers record the history of files and documents. By default, it handles projects from small to middle size, and in order to support larger ones, it must be configured and extended. You can use CVS on almost every hardware platform and Operating system. It is free open-source software.

Cons of CVS
CVS has some cons too. Particularly, it doesn’t check the integrity of the source code repository. There is no support for atomic commits and check-outs, as well as for merge tracking and signed revisions.
-
SVN
SVN (Apache Subversion) is a centralized version control system that has been widely used over the past decade. SVN has the following features: versioned directories, atomic commits support, merge tracking, the existence of copying, deleting, moving and renaming versions, client-server repository model, metadata of free-form version, full MIME support, file locking, etc.. It is free open-source software.

Cons of SVN
The time of file modifications aren’t stored, some problems with filename normalization and the lack of support for signed revisions.
-
Mercurial
Mercurial is a distributed version control software written in python. This fast working software supports projects of any size and type. Its interface is quite predictable, which makes it easy to learn. It supports the following operating systems: Unix-like, Windows, and macOS. It strongly supports binary files and has excellent merging and branching capabilities. It is free open-source software.

Cons of Mercurial
Python is required for all the add-ons. It doesn’t allow partial check-outs and doesn’t deal well with extra extensions.
-
Monotone
Monotone is a distributed version control system that is written in C++. It's a single-file transactional VCS that provides completely disconnected operation. Merging is history-sensitive, branches are quite light.
Monotone supports a productive peer-to-peer synchronization. It understands history-sensitive merging, requires low maintenance, values the integrity of code review, and supports 3-way merges. It runs on several platforms: Linux, Solaris, Mac OS X, Windows, and other Unixes. It is free open-source software.

Cons of Monotone
Users cannot check out or commit from behind a proxy because of the absence of the HTTP protocol. Performance issues are observed for particular operations. The most obvious of them is the initial pull.
Note: Monotone is largely abandoned and has limited modern relevance.
Practice
Which of these is not a feature of Git as a Version Control Software?