Warning: fopen(logv.txt): failed to open stream: Permission denied in /home/keonox/www/pyg/ganesha/inc.php on line 61

Warning: fputs(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 62

Warning: fclose(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 63
TutoG : CVS - Présentation
Accueil > Tutoriels > CVS - Présentation Contact  | Imprimer  | English translation

CVS - Présentation

Présentation

CVS, (Concurrent Version System) est un outil permettant de gérer l'évolution dans le temps d'un ensemble de fichiers . CVS permet au minimum d'extraire des sources, de les modifier, de soumettre ses modifications, de garder l'historique des modifications et de restaurer n'importe quelle version précédente. Mais l'atout majeur de CVS est de permettre à plusieurs développeurs de travailler sur le même groupe de fichiers: chacun travaille de manière indépendante dans son environnement personnel et CVS gère l'ensemble.

Outre le fait que les originaux sur le référentiel ne sont jamais affectés directement par les utilisateurs --- qui n'éditent jamais que des copies dont cvs se charge de faire la mise à jour après coup --- l'idée fondamentale est de ne conserver (dans un fichier unique) que l'historique des modifications qui ont affecté un fichier, et non ses multiples « incarnations » successives. D'où un important gain de place, pour parvenir au même résultat : être en mesure de retrouver une version particulière et localiser la première manifestation d'un bogue, longtemps après sa première apparition dans une lignée de révisions.

Une autre caractéristique de cvs repose sur le fait de permettre à chaque développeur de travailler dans son propre répertoire. Que ce dernier se trouve sur la même machine que le référentiel ou en réseau, cvs se charge de fusionner le travail « réparti » dans un référentiel commun, auquel chacun peut à tout moment se reporter.

Bref, l'intérêt d'utiliser les possibilités CVS de Ganesha sur Savannah est de permettre à différents développeurs (préalablement identifiés), dispersés géographiquement, la possibilité d'apporter des corrections ou des améliorations à Ganesha sans perturber l'avancement général du projet.

J'ai rien compris !

Savannah, est un site qui propose différents outils à des projets sous licence GPL (ce qui est le cas de Ganesha). Parmi ces outils (mailing-listes, remontées de bugs, espace de téléchargement, etc.) il y a notamment un outil nommé CVS.

CVS permet à plusieurs personnes de travailler simultanément sur un même ensemble de fichiers (les sources Ganesha). Mieux encore, à chaque fois qu'un fichier est modifié, CVS garde la trace de la modification (date, auteur, type et contenu de la modification). Par conséquent, il devient possible de "revenir dans le passé" afin de savoir qui amodifié, quoi, quand (et éventuellement pourquoi) et même de repartir d'un tel fichier.

L'intérêt principal de CVS est donc double :

Ainsi, si 3 développeurs A, B, et C travaillent sur les sources Ganesha. Rien n'empêche A et B de travailler en local sur leurs machines à l'amélioration du Chat pour A et à la correction d'un bug de la messagerie (pour B) sans avoir à s'échanger leur fichiers en permanence (CVS gère même le fait que deux personnes travaillent simultanément sur la même ligne d'un même fichier !).
Quant à C, s'il se reconnecte au CVS après une période d'absence, il pourra identifier quelles ont été les modifications faites par A et B, et, pourquoi pas, créer de nouveaux fichiers apartennant à une future version de Ganesha sans perturber le travail de A et de B.

Qui est concerné ?

Assez peu de monde, il est vrai...

Pour 95% des utilisateurs, il s'agit plutôt de récupérer la dernière version stable de Ganesha plutôt qu'une version en développement. L'accès au CVS est donc inadapté. La partie téléchargement de Savannah (ou d'Anemalab.org) est là pour ça !

Pour les 5% restants souhaitant participer au développement collaboratif du code de Ganesha, il faudra quand même démontrer de bonnes connaissances en PHP/MySQL ainsi que faire connaître quelles orientations vous souhaitez donnez à vos développements (pédagogique, technique, correction de bug, etc.). Cela afin d'eviter que de trop nombreuses "branches" de l'arbre CVS soient générées. De même, il est fortement conseillé de bien connaître les différentes commandes CVS et leurs répercussions !

Deux méthodes d'accès sont possibles :

Accueil > Tutoriels > CVS - Présentation Contact  | Imprimer  | English translation