Résumé des commandes CVS
Télécharger le fichier brut
  
  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