Creation du repository : ======================== => setenv $CVSROOT ... ==> cvs init Creation d'un module : ====================== aller dans le repertoire de travail du module => cvs import -m "Message" module vendor_tag branch_tag si vous ne comprenez pas ce que sont les vendor et branch_tag, c'est normal, personne ne le sait. mettez par exemple "main" et "start". Creation d'une copie locale d'un module : ========================================= depuis la branche principale => cvs co module depuis une branche => cvs co -d branch_name module_name depuis un tag => cvs co -r tag module_name Exportation sans repertoires CVS administratifs : ================================================= memes options que cvs check out => cvs export Suppression d'une copie locale : =============================== pour eviter d'effacer un checkout en oubliant nos modifications => cd .. ==> cvs release -d module Mise a jour des fichiers locaux : ================================= depuis la branche courante => cvs up depuis la fin de la branche principale => cvs up -A depuis une branche => cvs up -r branch_name depuis un tag => cvs up -r tag_name Sauver les fichiers locaux dans le repository : =============================================== => cvs ci -m "message" changer la revision (doit etre plus grand que tous les numeros existants) => cvs ci -r 3.0 Ajouter des fichiers : ====================== => cvs add file1 file2 ... ==> cvs ci -m "ajout des fichiers" Supprimer des fichiers : ======================== Il faut d'abord supprimer le fichier du répertoire => rm file1 file2 ... ==> cvs rm file1 file2 ... ===> cvs ci -m "suppression des fichiers" Supprimer un répertoire : ========================= Pas possible directement, il faut aller le supprimer dans le serveur. Créer un tag : ============== dans la branche courante => cvs tag tag_name dans une autre branche => cvs rtag -r branch_name tag_name uniquement les fichiers deja taggée => cvs rtag -r old_tag_name tag_name en verifiant qu'aucun fichier n'est modifié localement => cvs tag -c tag_name Créer une branche : =================== dans la branche courante => cvs tag -b branch_name dans une autre branche => cvs rtag -b -r branch_name new_branch_name passer dans cette branche => cvs up -r branch_name Merge avec une branche : ======================== merge d'une autre branche dans la branche courante => cvs up -j branch_name ==> cvs ci -m "Applied branch_name modifications" Remerger une branche mergée et modifiée : ========================================= si la branche branch_name a été mergée dans la branche courante puis tagguée a tag_name => cvs up -j tag_name -j branch_name (attention à l'ordre) ==> cvs ci -m "Applied new branch_name modificatios" Associer un nouveau nom symbolique : ==================================== pour creer un alias sur un tag ou une branche existant => cvs admin -n newname:oldname [repertoire] si le nom "oldname" est supprimé, le contenu de la branche reste accessible par "newname". Annuler une branche : ===================== si une branche a été crée et qu'on veut la fusionner (par exemple parce qu'un sous-repertoire ne sera jamais modifié dans la branche et peut donc rester synchrone avec la branche principale), on commence par sauver l'ancienne branche au cas ou : => cvs admin -n newname:oldname [repertoire] ensuite on supprime l'ancien nom de la branche : => cvs tag -B -d oldname [repertoire] enfin on aliase l'ancien nom sur la branche avec laquelle on veut fusionner : => cvs admin -n oldname:branchtomerge [repertoire] il peut être bien d'updater entre les opérations pour récupérer les fichiers qui ne sont pas présents dans chaque branche. Obtention d'une version sticky : ================================ sticky tag => cvs up -r tag_name/branch_name => cvs ou -r tag_name/branch_name module sticky date => cvs up -D yesterday/"1 hour ago"/"24 Sep"/"24 Sep 1972 12:05"/"1972-09-24 11:56" Suppression des sticky : ======================== => cvs up -A Annulation des modifications locales : ====================================== les fichiers remplacés sont sauvés en .#file.revision => cvs up -C Obtention des messages de log des commit : ========================================== => cvs log file_name Voir l'historique des revisions d'un fichier : (avec les branches et les tags) ============================================== => cvs st -v file_name Voir l'historique brute du module : =================================== => cvs his -ea module Options classiques : ================== creation des nouveaux repertoires apparus dans le repository => cvs up -d suppression des repertoires vides => cvs up/co -P update non recursif => cvs up -l diminuer les messages affichés => cvs -q utiliser le format unifié pour diff => cvs diff -u ne pas faire attention aux lignes/caracteres blancs insérés => cvs diff -b -B prendre la version la plus recente si aucune de convient avec -d ou -r => cvs up/co -f -D/-r A mettre dans .cvsrc cvs -q update -d -P checkout -P diff -u -b -B