Re: [HS] question CVS

Top Page

Reply to this message
Author: Yves Martin
Date:  
To: guilde
CC: Bressy frederic, Christian Bayle
New-Topics: Re2 et FIN: [HS] question CVS
Subject: Re: [HS] question CVS
Hello,

Tu peux faire un merge par l'intermédiaire d'un update ou directement avec un
nouveau checkout pour éviter d'abiminer ta copie de travail courante.

Je te laisse voir avec la documentation de référence: le fameux "cederquist"
http://ximbiot.com/cvs/manual/cvs-1.11.22/cvs_5.html#SEC60

Si tu n'as pas taggé le point de départ de ta branche, tu peux faire:
cvs checkout -j BRANCH module
qui a pour effet de faire un checkout de "MAIN" (HEAD) en ajoutant toutes les
modifications réalisées sur la branche.

Si tu as conservé le point de départ de la branche par un tag (ou marqué un
précédent merge par un tag):
cvs checkout -j LAST_MERGE_ON_BRANCH -j BRANCH module

Attention, si ton checkout contient des conflits à cause de modifications
incompatibles ou à double entre la branche et main - affichés par le statut C et
chevrons <<<===>>> dans les fichiers - il faut tous les résoudre à la main avant
de faire le commit. D'ailleurs il est indispensable de compiler et tester le
résultat du merge avant de faire le commit ;)

Les remplacements de mots-clefs ($Revision$ par exemple) provoque
systématiquement des conflits dans les fichiers où ils sont présents.
Pour éviter d'avoir à résoudre ces conflits inutiles, l'option "-kk" est
nécessaire:
cvs checkout -j LAST_MERGE_ON_BRANCH -j BRANCH -kk module

Ensuite il est aussi indispensable de faire un tag sur la "BRANCH" pour marquer
le point qui a servi au merge... au cas où tu aurai à en faire un autre plus
tard, et sans ce tag, tu aura beaucoup de conflits à résoudre !

En espérant t'avoir éclairé
--
Yves Martin