[cvsnt] how to get the commit message in email notification in cvsnt

Czarnowski, Aric aczarnowski at unimax.com
Thu Aug 26 14:56:16 BST 2004


> I assume the stdin of the program in the command line 
> should include the cvs commit message.

That is true, STDIN contains the loginfo message plus a lot of other stuff.


> ALL  (echo %{sVv}; $USER) >>java email
>
> The the email I got is like this:
>
> "testkzcvs ,1.9,1.10"; administrator

You are replacing the STDIN with the commit message by piping instead the %{sVv} and $USER information.  %{sVv} gets you the "testkzcvs ,1.9,1.10"; text and $USER is sending the "administrator" text.

What you will want/need to do is write a wraper tool which formats the email text as you wish from the various data sources that CVS provides.  You already know what comes from %{sVv} and $USER and you should send those as command line arguments to the formatting wrapper.  Then also read STDIN from your formatting wrapper to pick up the commit message plus other information.  

STDIN input looks like the following:

   Update of c:/cvs/training
   In directory cvs:C:\temp\cvs-serv589

   Modified Files:
       anotherRootFile.html index.html
   Log Message:
   fourth checkin comment test

Or it might also include something like:

    Added Files:
        Tag: NEWTESTBRANCH
        testscript.pl

So you can see that version information only comes from %{sVv} and branch information only comes from STDIN.  You do not want to clobber STDIN by piping %{sVv}.

To get pretty emails that are nice to read write a formatting wrapper to make the email text and then hand that off to your java email app.  Or use CVSMailer which is a pre-written email tool for CVS loginfo handling.  Many others use CVSMailer but I do not so I do not know where to get it.

--Aric


Aric Czarnowski
Unimax Systems Corporation
612-204-3634



More information about the cvsnt mailing list