# The "log_accum.conf" file overrides the the defaults hard-coded in
# the "log_accum.pl" script allowing admins to setup the log_accum.pl
# once as executable, but not writable.  Each project can then have
# it's own "log_accum.conf" to configure the behaviour of their own
# cvs commit messages.


# MAIL TO
#
# When set, specifies the email address(es) to
# receive commit messages. When left unset, the
# script will attempt to guess the correct
# mailing list using the repository name and
# the MLISTHOST option.
#
MAIL_TO = scm@groovy.codehaus.org

# MAIL FROM
#
# When set, specifies the email address that
# all commit messages will be sent from.
# Very usefull for setting up a "no reply"
# address for commit messages.
#
# When not set, the script will guess the sender's
# address by prefixing the cvs user's name to the
# MLISTHOST option.
#
#MAIL_FROM = noreply@codehaus.org

# MAIL HOST ADDRESS
#
# The host address to use when guessing either
# the TO or FROM addresses.
#MLISTHOST = codehaus.org

# X-SENDER EMAIL HEADER
#
# When specified, adds an X-Sender header to the
# emails sent so that users can use it to more
# easily filter out cvs messages.  This is very
# nice for when there is no mailing list
# dedicated to cvs commit messages.
#
XSENDER       = Groovy-CVS

# REPLY-TO EMAIL ADDRESS
#
# When REPLYTO is set an SMTP "Reply-To" email
# header will be added.  This is very useful
# for keeping development discussion on a
# dev list even when cvs messages go a cvs list.
#
REPLYTO = dev@groovy.codehaus.org

# SUBJECT PREFIX
#
# This text, plus a space, will be prepended
# to the subject line of the commit message.
# When the option specified with no value, no
# prefix will be used.
#
SUBJECT_PREFIX =

# MESSAGE SIZE LIMIT
#
# If the delta info exceeds this threshold, no diff will be
# mailed/logged; as a replacement for this, URLs pointing
# to the corresponding ViewCVS diffs will be constructed and
# included in the mail/log message.
#
# 0 = no treshold, unlimited diffs
# x = maximum size of the diff in kb
#
#SIZELIMIT = 100;

# VIEWCVS URL
#
# Specify here the URL to ViewCVS (without trailing slash!)
# If left unset, the script will attempt to guess the correct
# value.
#
VIEWCVS = "http://cvs.groovy.codehaus.org/groovy";
