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) Best Peter ---------- Forwarded message ---------- Date: Tue, 20 Dec 2005 00:15:20 +0100 (CET) From: Peter Toft <[EMAIL PROTECTED]> To: Mark E. Hamilton <[EMAIL PROTECTED]> Cc: [EMAIL PROTECTED], [email protected] Subject: Auto email on commit Early december there was another email about CVS and the log.pl 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 log.pl script (the <somepath>contrib/log script). Earlier we had entries in the CVSROOT/loginfo file like this; ^MyModuleName <somepath>/contrib/log -V -m [EMAIL PROTECTED] -f $CVSROOT/CVSROOT/commitlog %{s} if I want mails to [EMAIL PROTECTED] 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 UseNewInfoFmtStrings=yes and then commit "config" - see http://ximbiot.com/cvs/manual/cvs-1.12.13/cvs_18.html#SEC189 (I cannot make the log.pl 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 log.pl 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})" [EMAIL PROTECTED] [EMAIL PROTECTED]) if both [EMAIL PROTECTED] and [EMAIL PROTECTED] 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) Body: File MyModuleName/ChangeLog.txt Version update 1.161 -> 1.162 ----------------------------------- Update of /opt/CVSROOT/MyModuleName In directory workstation13:/home/pto/MyModuleName Modified Files: ChangeLog.txt Log Message: I have just inserted some text and make commit of this <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Best Peter Toft, Ph.D. [EMAIL PROTECTED] http://pto.linux.dk LinuxForum 2006 - Wanna join? March 3. + 4. 2006. http://www.linuxforum.dk - call for abstracts open now! _______________________________________________ Info-cvs mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/info-cvs _______________________________________________ Info-cvs mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/info-cvs
