Je viens de voir que Tux avait fait pas mal de commit juste pour changer le numéro de version.
Je pense que l'on devrait revoir notre utilisation de CVS pour revenir sur des bases saines.
A savoir:
- les fichiers doivent avoir ete commites au moins une fois avec la chaine $Id$ dans un commentaire ( possiblement dans l'entete ) . Ce faisant CVS remplace cette chaine a chaque fois qu'on commite une nouvelle version du fichier par le numéro de version: i.e. on a un numéro de version par fichier
- chaque version/release doit etre taggee: a la racine du project, on fait un petit :
cvs tag -F <tag>
le -F permet de forcer le tag (pratique si on tagge , puis on s'aperçoit d'une erreur, on commit une nouvelle version et on retag avec le meme tag)
le <tag> doit être de la forme vX_Y_Z ( par exemple v1_9_6)
Comme ca si on est en version 2.3.5, on sait revenir a la version 1.9.6 facilement ( cvs co -r v1_9_6 eagleusb )
Et surtout celui qui pose le tag attend d'avoir le feu vert des autres ... Ca évite de faire 10 fois le même tag ;)
Je me demandais justement pourquoi l'entête changeait toute seule. Ok ça marche.
# $Id: fctStopAdsl,v 1.2 2004/02/20 16:25:09 Tux Exp $
Donc je supprime toutes les références "Version 1.9.6".
> du fichier par le numero de version: i.e. on a un numero de version par fichier
Quand ce sera tagué, la véritable version (1.9.6) apparaîtra aussi dans $Id$ ?
Juste un $Name$ mais ça ajoute le nom du tag utiliser lorsque tu fais un checkout, et encore faut le préciser expressément ...
> - chaque version/release doit etre taggee: a la racine du project, on fait un petit :
On taggue à quel moment? Juste après la sortie de la 1.9.5, tu taggues v1_9_6 avant même d'apporter les modifs?
Juste avant de sortir un package
> Et surtout celui qui pose le tag attend d'avoir le feu vert des autres ..
> Ca évite de faire 10 fois le meme tag ;)
Il faut le poser qu'une seule fois ?
J'utilise cervisia, y'a les menus:
- Marqueur / branche
- Supprimer un marqueur
- Mettre à jour un marqueur / à une date
- Mettre à jour vers <HEAD>
- Fusionner
Déjà je vois pas trop la différence entre marqueur <base> et <head>...
J'ajouterai ceci :
- toute création d'un package (tar.gz, ebuild, deb) donne lieu à la création d'un tag.
- Une fois le package créé il ne peut pas être modifié (même pour des modifications minimes).
- En cas de modification d'un package, il faut recréer une version :
- ex1. passage de 1.9.5 à 1.9.6 pour l'ajout d'une correction, la version 1.9.5 est retirée du téléchargement pour obliger à passer à la version 1.9.6.
- ex2. : Si bug trouvé dans 1.9.6, dès qu'un nouveau package est généré, passage en 1.9.7... (c'est pas grave de changer de n° de version, c'est fait pour ça).
Configuration CVS chez gna
export CVS_RSH=ssh
export CVSROOT=:ext:baud123@cvs.gna.org:/cvs/eagleusb
récupération de tous les fichiers
cvs co eagleusb
remettre en ligne un fichier
cvs -d baud123@cvs.gna.org:/cvs/eagleusb -f commit -l -m '- 1.9.9rc1' ChangeLog