Logiciel de contrôle de version
Définition
Le logiciel de contrôle de version (VCS) est un outil bénéfique qui contribue au flux de travail collaboratif d'une équipe de développement logiciel. Il est essentiel pour les équipes composées de plusieurs développeurs. Chaque entreprise adopte le VCS qui correspond le mieux à sa stratégie.
Voici une liste d'outils VCS largement utilisés.
Git
Git est l'un des logiciels de contrôle de version les plus populaires disponibles sur le marché actuel. Git est un système de contrôle de version distribué rapide et efficace, facile à apprendre. Il peut gérer des projets de toutes tailles, des petits aux énormes. Les caractéristiques distinctives de Git sont les suivantes : branches locales à faible surcharge, zones de préparation (staging areas) pratiques et prise en charge de multiples flux de travail. C'est un logiciel libre et open-source.

Inconvénients de Git
Malgré ses avantages, Git présente également quelques inconvénients. Tout d'abord, la prise en charge des fichiers binaires volumineux est faible. Les interactions peuvent perdre en vitesse en raison de dépôts volumineux ayant un historique très long. De plus, les commandes sont imprévisibles.
CVS
CVS (Concurrent Versions System) était historiquement populaire mais est aujourd'hui largement obsolète, ayant été supplanté par des systèmes distribués modernes. Il aidait les développeurs à enregistrer l'historique des fichiers et des documents. Par défaut, il gère des projets de petite à moyenne taille, et pour prendre en charge des projets plus importants, il doit être configuré et étendu. Vous pouvez utiliser CVS sur presque toutes les plateformes matérielles et systèmes d'exploitation. C'est un logiciel libre et open-source.

Inconvénients de CVS
CVS présente également quelques inconvénients. En particulier, il ne vérifie pas l'intégrité du dépôt de code source. Il n'y a pas de prise en charge des commits atomiques et des check-outs, ainsi que du suivi des fusions et des révisions signées.
SVN
SVN (Apache Subversion) est un système de contrôle de version centralisé qui a été largement utilisé au cours de la dernière décennie. SVN dispose des fonctionnalités suivantes : répertoires versionnés, prise en charge des commits atomiques, suivi des fusions, prise en charge des opérations de copie, suppression, déplacement et renommage des versions, modèle de dépôt client-serveur, métadonnées de version au format libre, prise en charge complète du MIME, verrouillage de fichiers, etc. C'est un logiciel libre et open-source.

Inconvénients de SVN
L'heure des modifications de fichiers n'est pas stockée, il existe certains problèmes avec la normalisation des noms de fichiers et un manque de prise en charge des révisions signées.
Mercurial
Mercurial est un logiciel de contrôle de version distribué écrit en Python. Ce logiciel rapide prend en charge des projets de toute taille et de tout type. Son interface est assez prévisible, ce qui le rend facile à apprendre. Il prend en charge les systèmes d'exploitation suivants : Unix-like, Windows et macOS. Il prend fortement en charge les fichiers binaires et dispose d'excellentes capacités de fusion et de branching. C'est un logiciel libre et open-source.

Inconvénients de Mercurial
Python est requis pour tous les modules complémentaires. Il ne permet pas les check-outs partiels et ne gère pas bien les extensions supplémentaires.
Monotone
Monotone est un système de contrôle de version distribué écrit en C++. C'est un VCS transactionnel à fichier unique offrant un fonctionnement complètement déconnecté. La fusion est sensible à l'historique, les branches sont assez légères.
Monotone prend en charge une synchronisation pair-à-pair productive. Il comprend la fusion sensible à l'historique, nécessite une maintenance réduite, valorise l'intégrité de la revue de code et prend en charge les fusions à 3 voies. Il s'exécute sur plusieurs plateformes : Linux, Solaris, Mac OS X, Windows et autres Unix. C'est un logiciel libre et open-source.

Inconvénients de Monotone
Les utilisateurs ne peuvent pas effectuer de check-out ou de commit depuis derrière un proxy en raison de l'absence du protocole HTTP. Des problèmes de performance sont observés pour certaines opérations. Le plus évident d'entre eux est le pull initial.
Note : Monotone est largement abandonné et a une pertinence moderne limitée.
Pratique
Laquelle de ces options n'est pas une fonctionnalité de Git en tant que logiciel de contrôle de version ?