[cvsnt] Re: cannot pass %{sVv} in logInfo completely

Bo Berglund bo.berglund at system3r.se
Tue Dec 13 13:52:03 GMT 2005


On Tue, 13 Dec 2005 11:02:47 +0000 (UTC), Evan Chou
<cyq_0906 at yahoo.com.tw> wrote:

>Dear CVSNT users,
>
>If all the changed files I committed are under the same directories, 
>the argument passed from %{sVv} looks like : 
>-----
>Proj101 bug11.txt,1.2,1.3 servers.ini,1.7,1.8
>-----
>It's OK to process the list. But if the files I committed are located 
>in different directories, I cannot get a complete list with %{sVv}. 
>The result shows that only the files in the final directory that cvsnt 
>handled are passed to my script.
>-----
>Proj101/subdir1 bug3.txt,1.9,1.10
>-----
>

>Did I touch a cvsnt's bug? It only happens when the committed files 
>are from different directories. Or is there a correct coding to get 
>the complete list from %{sVv}? I'm not familiar with Perl indeed.
>Any advice would be appreciated.
>

You have failed to notice that the loginfo script is called once for
*every* folder in the committed tree. That is to say that CVS
processes *one* folder at a time on the server even though you are
recursing down the folder tree on the client.
So you have to set up your script to be able to handle this situation,
namely that it will get simultaneous (almost) calls one from each
directory and you must solve the concurrency problem in your
scripting.
This was one of the main headaches when I developed CVSMailer so that
I could get one single email on a commit no matter how many folders
the commit processed.

You have to get back to the drawing board.
And NO this is not a bug, it is the way CVS works.

/Bo Berglund



More information about the cvsnt mailing list