je suppose qu'au départ tu as 3 répertoires : ~/work/dragon/release2-0, ~/work/dragon/release2-5 et ~/work/dragon/release3-0. Tu considère que ces 3 répertoires correspondent au même projet (projet "dragon" ), et tu veux que CVS gère le versionning.
Seulement voilà, pour CVS, il faut dans un projet (un module si tu veux) avoir un tronc commun de développement et tu peux créer des branches dessus (tu peux aussi créer des branches sur des branches, mais dans l'immédiat, on va pas faire trop compliqué).
La première étape, c'est donc la création du tronc commun de developpement. Ici, je te propose de considère de prendre ~/work/dragon/release2-0 qui nous servira de tronc commun de dev. Tu importes donc le contenu de ce répertoire, créant ainsi le module "dragon"
Code :
- $ cvs import -m "import initial" dragon lelfe initial
|
La seconde étape est de créer les différentes branches, sachant que pour toi, elles existent déjà. Il faut déjà dire que tu considère l'état de ton tronc commun comme celui de ta release 2.0, tu fais donc un checkout tout simple :
Code :
- $ mkdir -p $HOME/work/cvs-workdir
- $ cd $HOME/work/cvs-workdir
- $ cvs co dragon
- $ cd dragon
- $ cvs tag -b release-2_0
- $ cvs up -A
|
(la dernière ligne permet de dire que tu rafraîchis ton répertoire de travail CVS avec les révisions des fichiers du tronc commun et non de la branche release-2_0)
Ensuite, il faut créer la seconde branche : la 2.5. Comme tu as dit que des répertoires avaient été ajoutés etc. il va falloir bosser dessus à grand coup de cvs add et autre cvs remove. Commence par copier le contenu de ton ~/work/dragon/release2-5 vers ~/work/cvs-workdir/dragon en écrasant les fichiers qui sont remplacés par leur nouvelle révision (on se souvient que le mot version est décliné en : revision pour les fichiers, release pour les applications). Si tu as des fichiers qui doivent disparaître dans la release 2.5 et qui sont encore présent dans ton ~/work/cvs-workdir/dragon, il faut les virer, si tu as des fichiers ajoutés avec la copie de ~/work/dragon/release2-5, il faut les rajouter à CVS :
Code :
- $ cd $HOME/work/cvs-workdir/dragon
- $ cp -rf ~/work/dragon/release2-5/* .
- $ cvs -nq up
- // "cvs -nq up" te permet de voir ce qui se passerait si tu faisais un update, mais ne fais rien en réalité
- $ cvs add nouveauFichierApparuEn2-5.c
- $ cvs rm -f fichierDeLa2-0DisparuEn2-5.h
- $ cvs ci -m "passage à la release 2-5"
- $ cvs tag -b release-2_5
- $ cvs up -A
|
Il te reste à réappliquer le même principe pour la release 3.0.
Ensuite, tu te créées 3 répertoires (pour travailler proprement) :
Code :
- $ cd ~/work/cvs-workdir
- $ cvs co -r release-2_0 -d dragon-2_0 dragon
- $ cvs co -r release-2_5 -d dragon-2_5 dragon
- $ cvs co -r release-3_0 -d dragon-3_0 dragon
|
Si tu fais des modifs dans ~/work/cvs-workdir/dragon-2_0 et que tu commites, ces modifs n'apparaîtront qu'en branche release-2_0. Idem pour ~/work/cvs-workdir/dragon-2_5 et ~/work/cvs-workdir/dragon-3_0
Note : à mon boulot je suis co-responsable de la gestion de version avec CVS (notamment les branches) d'une grosse appli, j'ai pas réussi à comprendre tous les trucs de CVS encore et pourtant je passe pas mal de temps dessus. Ne pas s'inquiéter si on comprend pas tout au départ, je conseille vivement la lecture du document écrit pas idealx.org, et qui je viens de le voir est indisponible :-(, heureusement que je l'ai imprimé, c'est un document que j'ai lu et relu au début.
Message édité par z0rglub le 09-09-2003 à 00:33:10
---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com