SVN - Concepts de base

Qu'est-ce que le système de contrôle de version?

Version Control System (VCS) est un logiciel qui aide les développeurs de logiciels à travailler ensemble et à conserver un historique complet de leur travail.

Following are the goals of a Version Control System.

  • Permettez aux développeurs de travailler simultanément.
  • N'écrasez pas les modifications les unes des autres.
  • Conservez l'historique de chaque version de tout.

A VCS is divided into two categories.

  • Système de contrôle de version centralisé (CVCS), et
  • Système de contrôle de version distribué / décentralisé (DVCS).

Dans ce tutoriel, nous nous concentrerons uniquement sur le système de contrôle de version centralisé et en particulier Subversion. Subversion relève d'un système de contrôle de version centralisé, ce qui signifie qu'il utilise un serveur central pour stocker tous les fichiers et permet la collaboration en équipe.

Terminologies de contrôle de version

Commençons par discuter de certains des termes que nous utiliserons dans ce didacticiel.

  • Repository:Un référentiel est le cœur de tout système de contrôle de version. C'est le lieu central où les développeurs stockent tout leur travail. Le référentiel stocke non seulement les fichiers mais également l'historique. Le référentiel est accessible via un réseau, agissant comme un serveur et un outil de contrôle de version agissant en tant que client. Les clients peuvent se connecter au référentiel, puis ils peuvent stocker / récupérer leurs modifications dans / depuis le référentiel. En stockant les modifications, un client met ces modifications à la disposition d'autres personnes et en récupérant les modifications, un client prend les modifications d'autres personnes comme une copie de travail.

  • Trunk: Le tronc est un répertoire où se déroule tout le développement principal et est généralement extrait par les développeurs pour travailler sur le projet.

  • Tags: Le répertoire des balises est utilisé pour stocker des instantanés nommés du projet. L'opération de balise permet de donner des noms descriptifs et mémorables à une version spécifique dans le référentiel.

    Par exemple, LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORT est plus mémorable que

    UUID du référentiel: 7ceef8cb-3799-40dd-a067-c216ec2e5247 et

    Révision: 13

  • Branches:L'opération de branche est utilisée pour créer une autre ligne de développement. Il est utile lorsque vous souhaitez que votre processus de développement se déroule dans deux directions différentes. Par exemple, lorsque vous publiez la version 5.0, vous souhaiterez peut-être créer une branche afin que le développement des fonctionnalités 6.0 puisse être séparé des correctifs de bogues 5.0.

  • Working copy:La copie de travail est un instantané du référentiel. Le référentiel est partagé par toutes les équipes, mais les gens ne le modifient pas directement. Au lieu de cela, chaque développeur extrait la copie de travail. La copie de travail est un lieu de travail privé où les développeurs peuvent faire leur travail en restant isolés du reste de l'équipe.

  • Commit changes:Commit est un processus de stockage des modifications du lieu de travail privé au serveur central. Après validation, les modifications sont mises à la disposition de toute l'équipe. D'autres développeurs peuvent récupérer ces modifications en mettant à jour leur copie de travail. Commit est une opération atomique. Soit la validation complète réussit, soit elle est annulée. Les utilisateurs ne voient jamais le commit à moitié terminé.