|
||
Petit cours sur CVS (par Marc Poinot)Je me permets (excusez...) de faire quelques rappels sur CVS. V'la un p'tit cours (donne' en DESS). Les experts CVS peuvent s'affranchir de la lecture, ou encore faire des commentaires. Je viens de lire la page de IDEALX, elle est tres bien et elle est en francais (Olivier va m'inviter au resto ;)Elle decrit les commandes de bases et la discussion ci-dessous essaie plutot de donner des idees globales sur l'outil. Et puis, ca m'a bien detendu d'ecrire des trucs comme ca ! Note: Tout ce qui est ecrit est parfaitement libre d'utilisation. Enfin, en conclusion: sauter en parachute necessite un parachute. Le parachute est un outil et son utilisation necessite une procedure. Pour utiliser CVS il *faut* des procedures. Par exemple: tirer sur l'anneau d'ouverture avant de lire 3 metres sur l'altimetre ;) -- CVS est un outil de developpement dont la fonction est de gerer les sources(1). Il archive les sources, il gere les deltas entre les evolutions d'un fichier source(2), il propose un serveur pour les acces simultannes. La particularite de CVS est d'etre particulierement simple et souple, de plus il est tres bien adapte au travail parallele, et il est libre d'utilisation. Le fonctionnement est le suivant: Une base commune de fichiers est archivee sur un site unique, un serveur
se charge de tous les acces a cette base (aussi connue comme repository).
Gestion des conflitsEtant donne que CVS autorise le travail concurrent sur le fichiers, il
est possible que deux modifications soient effectuees en parallele. Dans
ce cas, la premiere des deux modifications qui arrive dans le repository
est prise en compte. La seconde modification qui est dans un espace de
travail local n'est pas autorisee a etre placee dans le repository tant
que l'utilisateur n'a pas resolu les conflits. Une fois les conflits resolus
(apres demande de mise a jour de la copie locale depuis le repository),
la nouvelle modification peut etre acceptee dans le repository. Versions et etiquettesLa numerotation de CVS est compliquee et pas toujours coherente, de plus,
connaitre ces numeros n'apporte pas grand chose. Il faut prendre un numero
de version comme un identificateur unique d'une occurence d'un fichier
donne dans le repository. Les branchesLes branches sont des variantes de l'arbre des sources. On distingue
habituellement deux types de branches, les variantes dites temporelles
(excusez la pedance) et les variantes spatiales. Une variante temporelle,
c'est une branche creer pour une phase de developpement par exemple. Une
branche pour l'integration, une branche pour le test, une branche pour
la maintenance. Une variante spatiale, c'est une branche qui permet de
gerer les differences pour (par exemple) differents types de machines,
d'algorithmes, voire... differents types de langages ;)
2 CVS ne sait pas gerer en version les repertoires. Cela signifie que
il ne sait pas tracer l'evolution du contenu d'un repertoire au cours
du temps. Si un repertoire contient un fichier, puis deux, il y a deux
versions de repertoires. CVS ne les connait pas. Il est possible de simuler
cela avec des tags (etiquette, label). Mais les tags n'ont pas d'ordre
chronologique et leur syntaxe et leur semantique n'est pas prise en compte
par CVS (tag branche, tag de tag, tag de livraison, tag read-only, etc...)
|
||
|