[cvsnt] Tagging mails

Bo Berglund bo.berglund at telia.com
Mon Nov 18 18:57:17 GMT 2002


Hi,
Concerning the many emails, yes you get many. But this is not one email per
file, rather
it is one email per module (directory) since that is the package CVS handles
in one
operation.
Single mails come out if there are watches set and you have activated the
notify
script as well. Notify is really bad, because it is invoked once for each
file AND for
each user having a watch set! So for a change on 10 files where 5 users have
watches set
no less than 50 emails are generated by 50 calls to CVSMailer (in this
case)!!

Concerning the long line:
If you have followed the CVSNT mail list (or better used the newsserver at
cvsnt.org)
you would have seen a number of threads on this subject. I noticed a problem
myself in
September when one of my developers tried to tag a module with a large
number of files
with rather long names too. What happened is that Windows NT gave the cvsnt
service an
exception error when it tried to invoke the CVSMailer program. The error was
generated
inside the cvsnt code itself when the command line passed to NT was too
long.
After some investigation I have found that somewhere between 4000 and 6000
characters
is the maximum length that can be passed as command line parameter to a
shelled process.

Actually the whole CVS method of passing parameters to a script is flawed,
but this is
true also for Unix. CVS should not pass info as command line parameters if
the info is
a list of files and revisions like here, because CVS cannot know how long
this list may
eventually become. Better to send those data on Standard Input instead.

I suggested this change to Tony Hoyle and he just the other day changed it
this way in
a non-released version.
I am currently testing this new version to see if it handles the files
better now.

But there is a cost to doing this particular change, it breaks backwards
compatibility
unless it is made configurable.

I am working on consoliating all of these into single larger emails, first I
am handling
the loginfo script data, then taginfo and if time is enough also notify.

I will post to the CVSMailer subscribed users when it is ready.


/Bo



-----Original Message-----
From: James Pownell [mailto:jpownell at inflectionsystems.com]
Sent: den 18 november 2002 18:58
To: bo.berglund at telia.com
Subject: Tagging mails


Bo,

I just turned on the tag mail and it seems to generate a mail for each
file that is tagged.

We have some directories with quite a few files and we got a line too
long error while the mail was on.

Have you seen this before?

Here's the taginfo file, no commented out.

-----------

# The "taginfo" file is used to control pre-tag checks.
# The filter on the right is invoked with the following arguments:
#
# $1 -- tagname
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
# $3 -- repository
# $4->  file revision [file revision ...]
#
# A non-zero exit of the filter program will cause the tag to be
aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT.  For the first match that is found, then the
remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions
in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# ALL C:\CVSNT\CVSMailer.exe -t $USER $CVSROOT






More information about the cvsnt mailing list