Dans tout projet de développement de logiciel, il arrive un moment où la communication entre les participants devient un goulot d’étranglement. Les développeurs doivent apporter des changements sur une certaine période, il est donc impératif que tout le monde soit sur la même longueur d’onde et s’assure que chacun dispose de la dernière version d’une information cruciale.
Plus un projet prend de l’ampleur, plus le nombre de personnes impliquées augmente. Il devient donc un peu plus complexe au fil du temps. L’une des meilleures façons de gérer cette complexité est d’utiliser des systèmes de contrôle de version.
Un système de contrôle de version est un référentiel central qui stocke les modifications apportées à un fichier ou à un ensemble de fichiers au fil du temps, de sorte que les différents membres de l’équipe puissent toujours accéder facilement aux dernières itérations des fichiers ou des documents liés au projet. Nous examinerons deux systèmes de contrôle de version populaires : SVN et VSS.
Qu’est-ce que SVN ?
Subversion, communément abrégé en SVN, est un système de contrôle de version et de révision libre et gratuit distribué sous la licence Apache et utilisé pour maintenir le code source des projets Apache.
SVN est un système de contrôle de version centralisé qui maintient un référentiel central pour stocker les informations dans un format hiérarchique typique de fichiers et de répertoires.
Le référentiel stocke l’historique complet des modifications du code dans un serveur central. Si un développeur souhaite se connecter au référentiel et accéder à un fichier pour y apporter des modifications, il doit extraire le fichier du référentiel central vers sa propre machine, puis ajouter ou modifier des fichiers et renvoyer les modifications vers le référentiel.
Il met automatiquement à jour la copie de travail locale du projet sur lequel vous travaillez afin d’intégrer les modifications apportées par toute personne travaillant sur le projet. Cela permet à quiconque d’accéder aux derniers fichiers mis à jour que vous avez transférés dans le dépôt central.
Qu’est-ce que VSS ?
Visual SourceSafe (VSS) est un système de contrôle de version distribué de Microsoft qui automatise le processus de suivi des fichiers et de contrôle de version. Conçu pour les petits projets de développement de logiciels, VSS est généralement utilisé en mode intégré avec Microsoft Visual Studio. Comme SVN, il maintient une base de données centrale où sont stockés tous les fichiers et documents liés au projet, ainsi que l’historique des modifications apportées aux fichiers au fil du temps.
Fondamentalement, il identifie, organise et contrôle les modifications apportées au logiciel au cours de son développement et de sa maintenance. Il conserve plusieurs versions d’un fichier, y compris un enregistrement des modifications, et archive et suit les anciennes versions des fichiers. VSS était à l’origine un service de gestion de la configuration des logiciels (SCM), mais il s’est transformé au fil du temps en un système de gestion du code source. VSS vous permet de stocker tous les types de fichiers, y compris le code, les graphiques, les documents, les DLL, les icônes, les fichiers d’aide, etc. Ces fichiers sont stockés dans la base de données VSS dans des « projets ». Ces fichiers sont stockés dans la base de données VSS dans des « projets ». Il s’agit d’un référentiel commun où chacun peut enregistrer les fichiers liés à son projet et y accéder.
Différence entre SVN et VSS
Outil de SVN et VSS
– Microsoft Visual SourceSafe (VSS) est l’un des outils de contrôle et de gestion des sources les plus populaires de Microsoft, généralement utilisé avec Microsoft Visual Studio. L’outil a été développé à l’origine par une société nommée One Tree Software, qui a ensuite été rachetée par Microsoft. VSS n’est plus utilisé aujourd’hui.
SVN, quant à lui, est un système de contrôle de version et de révision libre et gratuit, distribué sous la licence Apache. SVN est raisonnablement facile à utiliser et le flux de travail est très similaire aux autres systèmes de contrôle de version existants, de sorte que ceux qui sont déjà familiers avec les systèmes de contrôle de version n’auront aucune difficulté à passer à SVN.
Atomic Commit
– Le commit atomique est probablement l’une des meilleures pratiques des systèmes de gestion de code source. Il s’agit d’une modification indivisible qui permet de commiter plusieurs fichiers en un seul check-in. Il s’agit généralement d’une fonctionnalité de base dans les implémentations SCM.
L’une des raisons pour lesquelles les développeurs préfèrent SVN à d’autres systèmes de gestion de code source, tels que VSS, est que SVN permet des livraisons atomiques. Cela signifie que lorsque vous livrez quelque chose à SVN, soit vous livrez tout ce que vous voulez, soit vous ne livrez rien du tout. Le dépôt ne se retrouve pas dans un état incohérent si une opération est interrompue en cours de route. Cependant, les livraisons de VSS ne sont pas atomiques.
Mode de fonctionnement
– Une autre différence fondamentale entre les deux systèmes de contrôle de version est que le mode de fonctionnement de SVN est non verrouillé. Cela signifie que plusieurs utilisateurs peuvent accéder et modifier le même fichier tout en travaillant sur leurs copies de travail sans créer de conflit.
SVN empêche tout conflit entre plusieurs utilisateurs travaillant sur la même copie de travail. Rien n’est vraiment verrouillé dans SVN et n’importe quel membre de l’équipe qui a accès aux validations peut valider les modifications de n’importe quel fichier à n’importe quel moment. Avec VSS, en revanche, il n’y a aucune garantie que les modifications apportées à un même fichier n’entrent pas en conflit les unes avec les autres. Les utilisateurs peuvent être bloqués lorsqu’ils essaient de modifier un fichier commun en même temps.
Résumé de SVN et VSS
L’une des principales différences entre SVN et VSS est que le mode de fonctionnement de SVN est non verrouillé, ce qui signifie que plusieurs utilisateurs peuvent apporter des modifications à un fichier en même temps, sans qu’il y ait le moindre conflit.
SVN est un système de contrôle de version centralisé qui maintient un dépôt central de l’historique complet des modifications du code au fil du temps, ce qui permet à quiconque d’ajouter, de modifier ou de supprimer n’importe quel fichier à n’importe quel moment. VSS, quant à lui, est un service abandonné de Microsoft qui était autrefois l’un des outils de contrôle de source les plus utilisés.