Introduction à la gestion de configuration avec CVS Xavier Baril.

26
Introduction à la gestion de configuration avec CVS Xavier Baril

Transcript of Introduction à la gestion de configuration avec CVS Xavier Baril.

Page 1: Introduction à la gestion de configuration avec CVS Xavier Baril.

Introduction à la gestion de configuration avec

CVS

Xavier Baril

Page 2: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 2

Plan

Introduction Architecture Quelques commandes Les tags Les branches Conclusion

Page 3: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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)

Page 4: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 5: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 6: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 6

Exemple d’arborescence

code lib scripts src test

delivery

doc design quality spec test

tools java uml …

Page 7: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 8: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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, …)

Page 9: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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)

Page 10: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 11: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 12: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 12

Vocabulaire

Revision Repository Working copy Check out

Commit Log message Update Conflict

Page 13: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 14: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 15: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 15

Statuts d’un fichier

Up-to-date Locally Modified Locally Added Locally Removed Needs Checkout Needs Merge Unresolved Conflict Unknown …

Page 16: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 17: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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é

Page 18: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 19: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 20: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 20

Modèle de branche par objectif

Page 21: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 21

Outils

Client : Interfaces graphiques WinCVS TortoiseCVS tkcvs … Eclipse

Serveur (Windows) CVSNT

Page 22: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 22

Plugin Eclipse : propriétés

Page 23: Introduction à la gestion de configuration avec CVS Xavier Baril.

(C) Xavier Baril 23

Plugin eclipse : menus

Page 24: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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)

Page 25: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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

Page 26: Introduction à la gestion de configuration avec CVS Xavier Baril.

(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;-)