[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Auto email on commit - again

From: Peter Toft
Subject: Auto email on commit - again
Date: Wed, 25 Jan 2006 21:16:21 +0100 (CET)

Some time ago I posted this email about my way of handling cvs commit 
mails with the new file format, however today I had a 16 CPU server which 
I accessed via SSH. Here the commit operation flies, but the file locking
gives problems; if I do "cvs -t commit ..." I see late in the commit 
process (actually the very last steps)

S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()
  -> close_connection_to_server ()
S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()          
S -> server_cleanup()

One of these Simple_Lock_Cleanup() ends up halting the commit for ~15 
seconds or more. The huge delay goes away if I do not add the send mail 
stuff below to the loginfo file.
I have tried to call "mail" on the server directly - here it flies fast.

I have no clue why it happens with CVS 1.12.9.

The server runs RH AW3 with lots of memory and 16 non-loaded CPUs.

Any clue is badly needed (or alternative)



---------- Forwarded message ----------
Date: Tue, 20 Dec 2005 00:15:20 +0100 (CET)
From: Peter Toft <address@hidden>
To: Mark E. Hamilton <address@hidden>
Cc: address@hidden, address@hidden
Subject: Auto email on commit

Early december there was another email about CVS and the contrib 
script. Here is a follow-up + solution. Read on..

I have just updated to CVS 1.12.9.
This version is somewhat annoying, since it breaks the earlier
interface to the script (the <somepath>contrib/log script).

Earlier we had entries in the CVSROOT/loginfo file like this;
^MyModuleName <somepath>/contrib/log -V -m address@hidden -f 
$CVSROOT/CVSROOT/commitlog %{s}
if I want mails to address@hidden when a commit is done to MyModuleName

But with CVS 1.12.9 I have to get rid of a deprecated log-format by
adding a line to CVSROOT/config
and then commit "config" - see

(I cannot make the script work with CVS 1.12.9. 
If someone can, let me know.)

With the new CVS-version I think the best and easiest replacement of
the script is to simply add a (long) one-liner per module to 
CVSROOT/loginfo if you want to get cvs commit emails again
^MyModuleName ((echo "File %{p}/%{s}"; echo "Version update %{V} -> %{v}"; echo 
"-----------------------------------";  cat) | mail -s "CVS commit: %{p}/%{s} 
(v%{v})"  address@hidden address@hidden)
if both address@hidden and address@hidden should get
emails at any commit to the CVS module MyModuleName.
(sorry about the long line; I have not yet figured out to put it into a 
script - anyone who can help there?)

The result is generated emails such as
Subject: CVS commit: MyModuleName/ChangeLog.txt (v1.162)
File MyModuleName/ChangeLog.txt
Version update 1.161 -> 1.162
Update of /opt/CVSROOT/MyModuleName
In directory

Modified Files:
Log Message:
I have just inserted some text and make commit of this


Peter Toft, Ph.D. address@hidden

LinuxForum 2006 - Wanna join? March 3. + 4. 2006. - call for abstracts open now!

Info-cvs mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]