Introduction à la gestion de configuration avec CVS Xavier Baril.

Post on 04-Apr-2015

111 views 1 download

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

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