mirror of
https://github.com/MariaDB/server.git
synced 2025-11-24 06:01:25 +03:00
bugs/wls in cset's comments. The targetted BUG's or WL's identifier must be specified the first in the comments. The referred bugs wls can be typed in same as the targeted clickable format. If the the target of the fix is a WL and there are some references to bugs then the first found reference is regarded as "co-target" so that the bug's identifier comes up on the subject line along with the WL's and commit mail will update the bug page. The latter feature can be disarmed (if there is no need to update the referred bug's page) with typing the first a pseudo-bug pattern (bug#0). This paticular cset will generate subject line containing bug#0 (as it was the first referred) whereas the old version would put in the subject line the last referred pattern (e.g bug#2147483648). BitKeeper/triggers/post-commit: fixing greedyness of old extraction
119 lines
2.6 KiB
Bash
Executable File
119 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#shift
|
|
FROM=$USER@mysql.com
|
|
COMMITS=commits@lists.mysql.com
|
|
DOCS=docs-commit@mysql.com
|
|
LIMIT=10000
|
|
VERSION="4.1"
|
|
|
|
if [ "$REAL_EMAIL" = "" ]
|
|
then
|
|
echo "Warning: you must set REAL_EMAIL in your profile"
|
|
else
|
|
FROM=$REAL_EMAIL
|
|
fi
|
|
|
|
BK_STATUS=$BK_STATUS$BK_COMMIT
|
|
|
|
if [ "$BK_STATUS" = OK ]
|
|
then
|
|
|
|
HAS_ACTUAL_CHANGES=`bk cset -r+ -d | grep -v "^#"`
|
|
if [ "$HAS_ACTUAL_CHANGES" = "" ]
|
|
then
|
|
echo ChangeSet had no real changes, not sending emails
|
|
exit
|
|
fi
|
|
|
|
CHANGESET=`bk -R prs -r+ -h -d':P:::I:' ChangeSet`
|
|
CSETKEY=`bk -R prs -r+ -h -d':KEY:' ChangeSet`
|
|
#
|
|
# composing subject lines of commit mails.
|
|
# if a fix targets to a WL and there is a bug referred
|
|
# then X-Bug mail header will contain the first found bug's number
|
|
#
|
|
BUG=`bk -R prs -r+ -h -d':C:' ChangeSet | \
|
|
sed -ne 's/[Bb][Uu][Gg] *# *\([0-9][0-9]*\).*$/BUG#\1/
|
|
s/.*BUG#\([0-9][0-9]*\)/\1/p'`
|
|
WL=`bk -R prs -r+ -h -d':C:' ChangeSet | \
|
|
sed -ne 's/[Ww][Ll] *# *\([0-9][0-9]*\).*$/WL#\1/
|
|
s/.*\(WL#[0-9][0-9]*\)/ \1/p'`
|
|
if [ "$BUG" = "" ]
|
|
then
|
|
TO=dev-public@mysql.com
|
|
BS=""
|
|
BH=""
|
|
else
|
|
TO=dev-bugs@mysql.com
|
|
BS=" BUG#$BUG"
|
|
# need newline here
|
|
BH="X-Bug: $BUG
|
|
"
|
|
fi
|
|
#++
|
|
# dev-public@ / dev-bugs@
|
|
#--
|
|
echo "Commit successful, notifying developers at $TO"
|
|
(
|
|
cat <<EOF
|
|
List-ID: <bk.mysql-$VERSION>
|
|
From: $FROM
|
|
To: $TO
|
|
Subject: bk commit - $VERSION tree ($CHANGESET)${BS}${WL}
|
|
X-CSetKey: <$CSETKEY>
|
|
$BH
|
|
EOF
|
|
bk changes -v -r+
|
|
bk cset -r+ -d
|
|
) | head -n $LIMIT | /usr/sbin/sendmail -t
|
|
|
|
#++
|
|
# commits@ mail
|
|
#--
|
|
echo "Notifying commits list at $COMMITS"
|
|
(
|
|
cat <<EOF
|
|
List-ID: <bk.mysql-$VERSION>
|
|
From: $FROM
|
|
To: $COMMITS
|
|
Subject: bk commit into $VERSION tree ($CHANGESET)$BS
|
|
X-CSetKey: <$CSETKEY>
|
|
$BH
|
|
Below is the list of changes that have just been committed into a local
|
|
$VERSION repository of $USER. When $USER does a push these changes will
|
|
be propagated to the main repository and, within 24 hours after the
|
|
push, to the public repository.
|
|
For information on how to access the public repository
|
|
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
|
|
|
|
EOF
|
|
bk changes -v -r+
|
|
bk cset -r+ -d
|
|
) | head -n $LIMIT | /usr/sbin/sendmail -t
|
|
|
|
#++
|
|
# docs-commit@ mail
|
|
# Picks up anything under the Docs subdirectory (relevant for docs team).
|
|
#--
|
|
bk changes -v -r+ | grep -q " Docs/"
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Notifying docs list at $DOCS"
|
|
(
|
|
cat <<EOF
|
|
List-ID: <bk.mysql-$VERSION>
|
|
From: $FROM
|
|
To: $DOCS
|
|
Subject: bk commit - $VERSION tree (Manual) ($CHANGESET)$BS
|
|
|
|
EOF
|
|
bk changes -v -r+
|
|
bk cset -r+ -d
|
|
) | head -n $LIMIT | /usr/sbin/sendmail -t
|
|
fi
|
|
|
|
else
|
|
echo "commit failed because '$BK_STATUS', you may need to re-clone..."
|
|
fi
|