Home
About
Projects
 CVS
 Contributors
 Online
 Download
 RCS
 Texinfo
 Texi2HTML
History
Tools
Support the Project
 
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Ce que CVS n'est pas?

CVS peut vous aider dans de nombreux cas, mais il ne peut pas régler tous les problèmes.

CVS n'est pas un système de fabrication.

Bien que la structure de votre référentiel influe sur les mécanismes de génération d'objets (ex `Makefile's), ces deux systèmes restent indépendants.

CVS n'impose pas une méthode particulière pour générer les objets. En fait il se contente de stocker les sources dans une arborescence de répertoires que vous êtes libres de concevoir.

CVS n'impose pas non plus de contraintes pour l'utilisation de l'espace disque dans les répertoires de travail (ceux ou résident vos versions de checkout d'un projet). Si vous utilisez des `Makefile's ou des scripts trop na@"{i}fs cela peut vous obliger à extraire l'intégralité du projet pour pouvoir y travailler.

Par contre si vous concevez une organisation bien modulaire il devient possible de partager des fichiers (en utilisant par exemple des liens, des mounts, ou des VPATH in `Makefile's, etc.).

Mais gardez à l'esprit que tout systéme de ce type est délicat à mettre au point et nécéssitera de la maintenance. À vous de décider si l'économie d'un peu d'espace disque justifie cet effort. En tous cas CVS ne propose aucun mécanisme pour partager les fichiers.

Vous pouvez bien sur utiliser CVS pour gérer les versions des scripts, `Makefile's, etc utilisés pour effectuer le partage des fichiers.

CVS ne se charge pas non plus de la détection des dépendances de génération entres fichiers. En général les utilisateurs de CVS s'appuient sur make pour la génération et sur d'autres outils automatiques pour la détection des dépendances (make depend par exemple)

See 14. How your build system interacts with CVS, for more information on doing builds in conjunction with CVS.

CVS ne remplace pas l'encadrement.

Vos managers et chefs de projets sont supposés vous tenir ingormés des plannings, des fusions de code, du nom des branches et des dates de release. Si ce n'est pas le cas, CVS ne peut rien y faire!

CVS ne remplace pas la communication entre développeurs.

Les développeurs sont en général capables de résoudre des conflits localisés à un fichier. Mais la définition de «conflit» recouvre aussi des problèmes plus complexes qui ne peuvent être traités sans une bonne communication entre les membres de l'équipe.

CVS ne peut pas déterminer quand des modifications simultannées (sur un ou plusieurs fichiers) entrainent un conflit logique. Par exemple lorsque des modifications incompatibles entrainent un comportement anormal du projet (sans forcement en empecher la compilation). La conception que CVS a des conflits est purement textuelle et elle se base sur la détection modification spatialement assez proches pour déclencher un «merge» (diff3).

CVS ne pretend pas vous aider à detecter ce types de conflits logiques.

Par exemple: Supposons que vous changiez les arguments de la fonction X definie dans le fichier `A'. Au même instant quelqun d'autre édite le fichier `B', en rajoutant des appels à la fonction X en utilisant les vieux arguments. Vous dépassez déjà les compétences de CVS.

Apprenez à lire attentivement les spécification et à discuter avec vos collègues.

CVS n'a pas de suivi des tâches

Le suivi des tâche recouvre trois notions. Tout d'abord ce peut être le suivi des anomalies qui permet d'associer dans une base de données un rapport d'anomalie et l'état des corrections (Bug corrigé? Dans quelle release? Le client admet-il que la correction est valable...). Pour interfacer CVS avec un système de suivi des anomalies externe se référer ayx fichiers `rcsinfo' et `verifymsg' ( C. Reference manual for Administrative files).

Le deuxième interêt du suivi de tâche est de pouvoir regrouper les modifications effectuées sur plusieur fichiers et de les associer à une tache logique de plus haut niveau. Même si vous effectuez un «check in» de plusieurs fichiers en une seule commande cvs commit, CVS ne le m'emorisera pas. Seul leur message de log identique lie ces différences modifications ensembles. Un fichier du type GNU `ChangeLog' peu tout de même remplir une partie de cette focntion.

Le dernier aspect du suivi de tâche (du moins dans certains systèmes) est de pouvoir contrôler le flot de développement. Des modifications sont faites par un développeur puis testées par un deuxième et ainsi de suite. En général avec CVS ces étapes sont effectuées grâce à la commande cvs diff (or diff). La modification est extraite par le développeur et envoyée par email à celui qui va l'appliquer (avec la commande patch). Ce système est très souple mais s'appuie sur des outils externes à CVS.

CVS n'est pas une plate-forme de test automatique

Il doit être possible de forcer l'execution d'une campagne de tests de non régression avant tout «check in» grâce au fichier `commitinfo'. Toutefois je n'ai pas eu de rapport d'équipes ayant appliqué cette méthode.

CVS n'intègre pas de modèle de développement
Certains sytèmes permettent d'imposer un cycle de développement particulier. Par exemple, en forcant le passage des modifications par plusieurs phases de tests avec des approbateurs différents. En général et avec un peu de travail, CVS permet de simuler ce genre de comportements en utilisant les fichiers `commitinfo', `loginfo', `rcsinfo', ou `verifymsg'. Pensez aussi que des concepts natifs de CVS (comme les branches ou les tags) facilitent certaines tâches (par exemple pour travailler à plusieurs sur une version de dévelopement avant de fusionner les changements validés avec le tronc commun stable).

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Sun Aug 26 19:43:32 UTC 2001 © 1999, 2000, 2001 by Manual Translation Project webmaster@manual-translation-project.org