jeudi 11 février 2010

ant : faire un changelog et un tagdiff sous cvs

voici un script ant permettant de creer un rapport de changelog et de tagdiff avec ant et cvs

La première partie recherche les commit des 30 dernier jours, la seconde fait la différence entre les tags valo_V6L3_1 et HEAD :

Il semblerait que le CVSROOT doit être correctement positionné:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="cvsReport" name="sources-changelog">



<target name="cvsReport" depends="changelogValo,tagDiffValo">

</target>

<target name="changelogValo"> <echo level="info" message="lancement du changelog de valo ..."></echo>

<cvschangelog dir="D:/wks.sources.HEAD/valo" destfile="changelogValo.xml" cvsroot=":pserver:toto@192.168.161.38:/production/cvs/sources" daysinpast="30">
</cvschangelog>
<xslt in="changelogValo.xml" out="changelogValo.html" style="${ant.home}/etc/changelog.xsl">

<param name="title" expression="sources VALO ChangeLog" />

</xslt>

</target>



<target name="tagDiffValo">

<echo level="info" message="lancement du tagdiff de valo ..."></echo>

<cvstagdiff destfile="tagDiff.xml" package="java/valo/data" cvsroot=":pserver:toto@192.168.161.38:/production/cvs/sources" starttag="valo_V6L3_1" endtag="HEAD">

</cvstagdiff>

<xslt in="tagdiff.xml" out="tagdiff.html" style="${ant.home}/etc/tagdiff.xsl">

<param name="title" expression="Valo Diff" />

</xslt>

</target>

</project>

cvs : poser un tag, tirer une branche

Il faut penser à configurer la variable d'environnement CVSROOT

exemple :
CVSROOT=:pserver:toto@192.168.161.38:/production/cvs/sources

se logger :
cvs login

se delogger :
cvs logout

faire un checkout :
cvs co

poser un tag :
cvs rtag -r HEAD livraison100203 java/monProjet

poser un tag :
cvs rtag -b -r uneBranche java/monProjet

Voici un exemple de tag sur 3 projets et sur la branche (xxx-xxx_V8L1_0), et un tag xxx_xxx_V8L1_0_6 sur le projet java/mon-app.

On peut et il faut lancer cette commande sur le serveur, via par exemple (la console admin de wincvs )

cvs rtag -r mon-app_V8L1_0 mon_app_V8L1_0_6 java/mon-app
cvs rtag -r mon-app-flex_V8L1_0 mon_app_FLEX_V8L1_0_6 java/mon-app-flex
cvs rtag -r mon-app-mq_V8L1_0 mon_app_MQ_V8L1_0_6 java/mon-app-mq