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

Bo Berglund bo.berglund at system3r.se
Tue Dec 13 16:38:24 GMT 2005


On Tue, 13 Dec 2005 14:16:54 -0200, Gerhard Fiedler
<lists at connectionbrazil.com> wrote:

>Bo Berglund wrote:
>
>> 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 are saying that the cvsnt manual is wrong here? From the manual:
>
>"loginfo: The specified program is called when the commit is complete. It
>receives the log message and some additional information and can store the
>log message in a file, or mail it to appropriate persons, or maybe post it
>to a local newsgroup, or... Your imagination is the limit!"
>
>To me, it seems pretty unambiguous about the loginfo being called "when the
>commit is complete" -- which I interpret as "the commit command execution,
>including all files that this command commits," being complete.

It is ambiguous, but in fact cvs.exe is called by the cvs service once
for each folder being processed. This cvs.exe process does its work in
the folder and then finally *whenit is done* it calls the loginfo
script and exits. Whereupon the service starts te next copy of cvs.exe
on the next folder etc.
So that is the context in which it is "complete".


>
>> 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.
>
>Would the postcommand file a better candidate for calling the mailer? Or
>does it also work on a directory-by-directory basis rather than a
>command-by-command basis?

No it works on the total cvs operation end.
>
I have indeed already partly done this! As soon as the postcommand was
available I added an option to let the final mail send be trigered
from postcommand rather than by a delayed action from one copy of
CVSMailer. This way the mail gets out immediately upon the end of the
commit operations.
But I still have to collect the file information from each and every
invocation of cvs.exe on these subfolders to create what will
eventually become the message sent by postcomand.

/Bo Berglund



More information about the cvsnt mailing list