Post on 04-Apr-2015
Introduction à la gestion de configuration avec
CVS
Xavier Baril
(C) Xavier Baril 2
Plan
Introduction Architecture Quelques commandes Les tags Les branches Conclusion
(C) Xavier Baril 3
La gestion de configuration
« La gestion de configuration consiste à gérer la description technique d'un système (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. »
Wikipedia
Logiciel de gestion de version (CVS)
(C) Xavier Baril 4
CVS : qu’est ce que c’est ?
CVS = Concurrent Version System Outil d’aide au développement Gestion de versions
Au niveau du projet Au niveau de chaque fichier
Permet d’annoter les modifications sur des fichiers
(C) Xavier Baril 5
Projet informatique
Entre 1 et N développeurs Un cahier des charges De la production (spécification ?, conception,
codage, …) Des livraisons (conception, sources, tests,
exécutable, documentation)
Beaucoup de fichiers ! Nécessité de conserver une trace du travail
(C) Xavier Baril 6
Exemple d’arborescence
code lib scripts src test
delivery
doc design quality spec test
tools java uml …
(C) Xavier Baril 7
Intérêts de CVS
Conserver un historique du travail Faciliter le développement en équipe
Qui a fait une modification ? A quelle date ? Pourquoi ?
Stockage centralisé Gestion des accès concurrents
(C) Xavier Baril 8
Limites et difficultés
Limites : Espace de stockage CVS ne gère pas tout ! Pas de prise en compte de « processus métier »
Difficultés : Renommer les fichiers Modifier l’arborescence Nécessite des compétences (administration,
gestion des branches, …)
(C) Xavier Baril 9
Historique
SCCS (Source Code Control System) RCS (Revision Control System) Défauts de SCCS et RCS
Fonctionnent au niveau fichier Ne sont pas interopérables à distance
Création de CVS en appui sur RCS : 1989(CVS est sous licence GPL)
(C) Xavier Baril 10
Concepts de base
Dépôt (repository) Répertoire partagé par tous Conserve l’historique des modifications
Module Ensemble de fichiers sources ou de répertoire
constituant un projet Révision
Chaque fichier a un numéro de révision unique
(C) Xavier Baril 11
Architecture
Copie
Client CVS (pserver)
Copie
Server CVS
Copie
Client CVS (ssh)
CVSROOT/usr/local/cvs
CVSROOT:pserver:usr@server:/usr/local/cvs
CVSROOT:ext:usr@server:/usr/local/cvs
(C) Xavier Baril 12
Vocabulaire
Revision Repository Working copy Check out
Commit Log message Update Conflict
(C) Xavier Baril 13
Quelques commandes (1)
Cvs add Nécessaire lorsqu’on
créé un nouveau fichier (ou répertoire) pour l’ajouter au module
Seules les modifications en local sont effectuées : utiliser cvs commit
Cvs checkout Demander au serveur de
renvoyer les fichiers d'un module
(C) Xavier Baril 14
Quelques commandes (2)
Cvs commit Valider et intégrer les
changements effectués en local
Le serveur attribut un nouveau numéro de révision
Cvs update Mettre à jour les fichiers
locaux
(C) Xavier Baril 15
Statuts d’un fichier
Up-to-date Locally Modified Locally Added Locally Removed Needs Checkout Needs Merge Unresolved Conflict Unknown …
(C) Xavier Baril 16
La notion de « tag »
Tag : (marqueur) d’un ensemble de fichiers afin de définir une version pour le projet.
Utilisé pour les livraisons
(C) Xavier Baril 17
Les « sticky tags »
Bloquer un fichier sur une révision particulière
Lors d’un update : « classique » le fichier n’est pas modifié « remove any sticky tag » le fichier est modifié
(C) Xavier Baril 18
La notion de branche
Définition : « dérivation dans l’histoire des éléments de configuration »
Caractéristiques : Correspond à un « axe d’évolution » Rattachée à une branche source Peut contenir des sous-branches
Concrètement : permet de gérer l’évolution de versions parallèles
(C) Xavier Baril 19
Fusion de branches
Combiner des modifications pour créer une nouvelle version
Intérêts : Synchronisation entre plusieurs développeurs Annulation d’une ancienne modification Import d’une modification d’une branche vers une
autre
(C) Xavier Baril 20
Modèle de branche par objectif
(C) Xavier Baril 21
Outils
Client : Interfaces graphiques WinCVS TortoiseCVS tkcvs … Eclipse
Serveur (Windows) CVSNT
(C) Xavier Baril 22
Plugin Eclipse : propriétés
(C) Xavier Baril 23
Plugin eclipse : menus
(C) Xavier Baril 24
Conclusion (1)
Cas d’utilisation Historisation archivage de documents Développement à plusieurs
Points faibles Renommage, déplacement, suppression de
fichiers Dépôt unique Incomplet pour la gestion de configuration
(pas de règles d’utilisation)
(C) Xavier Baril 25
Conclusion (2)
Points forts Performant pour la gestion de versions Accès à distance du dépôt Très utilisé Intégré dans de nombreux outils Gratuit, open-source
(C) Xavier Baril 26
Bibliographie
http://www.cvshome.org(site officiel)
http://www.nongnu.org/cvs(site officiel)
http://cvsbook.red-bean.com/cvsbook.html(assez complet)
http://www.google.fr;-)