Version Control System : système de contrôle des versions.

Besoin

Gérer les versions d'artefacts pour récupérer d'anciens états (état stable sans erreurs par exemple) d'un logiciel en cours de développement.

Analyse

Les VCS proposent des fonctionnalités de :

  • historisation : mémorisation des modifications (versions) réalisées sur des artefacts
  • travail en équipe : obtention (check-out) depuis et publication (check-in) d'artefacts vers un référentiel (repository) de versions, selon différents modèles :
    • réservation/libération : verrouillage et extraction d'un fichier, modification du fichier puis déverrouillage après re-publication.
    • copie/fusion : aucun verrouillage et résolution des modification concurrentes par fusion automatique ou manuelle.

Conception

Les VCS utilisent parfois des verrous.

Notes

  • On ne place généralement dans le référentiel qu'une version "stable" (exécutable sans erreurs) de l'application.
  • Certains VCS appliquant le principe de réservation/libération permettent parfois de "voler" un verrou acquis par un autre.

Limitations

  • Les VCS utilisant un modèle réservation/modification/libération ne sont pas adapté pour la collaboration entre développeurs indépendants éloignés (projets OSS par exemple).

Exemples