Auto-merge from mysql-trunk.
This commit is contained in:
commit
bd1f8f5bfa
37
.cvsignore
37
.cvsignore
@ -1,37 +0,0 @@
|
||||
.snprj
|
||||
COPYING
|
||||
COPYING.LIB
|
||||
INSTALL-SOURCE
|
||||
INSTALL-SOURCE-GENERIC
|
||||
Logs
|
||||
MIRRORS
|
||||
Makefile
|
||||
Makefile.in
|
||||
NEW-RPMS
|
||||
PUBLIC
|
||||
Projects
|
||||
TODO
|
||||
WIN-LICENSE
|
||||
aclocal.m4
|
||||
binary
|
||||
compile
|
||||
confdefs.h
|
||||
config.cache
|
||||
config.h
|
||||
config.log
|
||||
config.status
|
||||
configure
|
||||
configure.in-removed
|
||||
conftest.c
|
||||
conftest.s1
|
||||
conftest.s2
|
||||
conftest.subs
|
||||
internal-docs
|
||||
libtool
|
||||
linked_client_sources
|
||||
linked_server_sources
|
||||
mysql-copyright-120700-194832
|
||||
mysql-copyright-120700-221248
|
||||
skr
|
||||
stamp-h
|
||||
tmp
|
@ -1,62 +0,0 @@
|
||||
44d03f27qNdqJmARzBoP3Is_cN5e0w
|
||||
44ec850ac2k4y2Omgr92GiWPBAVKGQ
|
||||
44edb86b1iE5knJ97MbliK_3lCiAXA
|
||||
44f33f3aj5KW5qweQeekY1LU0E9ZCg
|
||||
45001f7c3b2hhCXDKfUvzkX9TNe6VA
|
||||
45002051rHJfMEXAIMiAZV0clxvKSA
|
||||
4513d8e4Af4dQWuk13sArwofRgFDQw
|
||||
45143312u0Tz4r0wPXCbUKwdHa2jWA
|
||||
45143b90ewOQuTW8-jrB3ZSAQvMRJw
|
||||
45184588w9U72A6KX1hUFeAC4shSHA
|
||||
45185df8mZbxfp85FbA0VxUXkmDewA
|
||||
4519a6c5BVUxEHTf5iJnjZkixMBs8g
|
||||
451ab499rgdjXyOnUDqHu-wBDoS-OQ
|
||||
451b110a3ZV6MITl93ehXk2wxrbW7g
|
||||
45214442pBGT9KuZEGixBH71jTzbOA
|
||||
45214a07hVsIGwvwa-WrO-jpeaSwVw
|
||||
452a92d0-31-8wSzSfZi165fcGcXPA
|
||||
452c6c6dAjuNghfc1ObZ_UQ5SCl85g
|
||||
4538a7b0EbDHHkWPbIwxO6ZIDdg6Dg
|
||||
454a7ef8gdvE_ddMlJyghvOAkKPNOQ
|
||||
454bb488ijVLOUK_GFjcoISE0GxPUA
|
||||
454bb9a8AwlGRC_wWLS2sNMoRBMRGw
|
||||
454c946ciQoR4dfTBZ0RTBmGJKp6lw
|
||||
454f6e7eAnfLD9OCbGr5X9KiKvfKcQ
|
||||
454f704bJiJy0_Nx2drY9P5kK3uOzg
|
||||
454f8960jsVT_kMKJtZ9OCgXoba0xQ
|
||||
454fa71cxshxszXJQYa9jbo0-_hAHw
|
||||
4550b0ceIcozdgQhWFUTAtWkN196lA
|
||||
4554a95d7txO1DuO9G3nAizI3SkFAA
|
||||
4554b3722d71SbPiI2Gx-RhbZjmuIQ
|
||||
4558b3d73Cxjlb7Wv1oytdSTthxDfw
|
||||
4561b2ecZbhuAc0TTDdCdultxUYaMw
|
||||
4561bde4qWhz1I8tkItXKex5uniipA
|
||||
4562ba016dYH0JzszOqZ8p6psbKfnQ
|
||||
45771031yRCoM_ZfONdYchPvVEgLRg
|
||||
459a60d8rIxeTuhB3j_QsOwLGdcpng
|
||||
459a61c9OS8PzIsdviZJDkybJ1y1uA
|
||||
459a70691aYIfU2ohV0a3P5iTLpO2A
|
||||
459a7422KF_P7PuU3YQ5qG6ZLEVpiA
|
||||
459a74e4nRcXppMSBYeQQ5efDkTADg
|
||||
459c03b9N_mqF2XJKK6DwSrIt7e6_g
|
||||
459c1965_BQMBzBO8S_gVqjTHYQrmw
|
||||
459c2098XoAUsUn8N07IVRDD6CTM-A
|
||||
459ea845XenN-uWqEM5LFvUT60tW_A
|
||||
45ae6628gqKTsUFfnoNExadETVIkbA
|
||||
45af88c9RIIJWPfBxs3o7zekI-ELPQ
|
||||
45ba4faf2oqu6eR8fqecR3LfSNcYUg
|
||||
45ba5238-NKl80QVXzdGo8hO9M75Xg
|
||||
45c0fdfb2mz6NdOIsLenJtf6_ZelTA
|
||||
45c38d90tNwOTSaYKHXd3ccLtnytlQ
|
||||
45c390d6BbWrwyEi5T5VsWKYxl06Rg
|
||||
45c39d31g0iik6UE_oTK5N55ry-ycA
|
||||
45d1ffcd-r3v8A7uh92hQaMfQM9UPQ
|
||||
45d21437Vg_-i4uOWyvzYWHESXDP6A
|
||||
45da6370nnZlAAIieMCrXkxF9toOyQ
|
||||
45da6551zUuplwxuqcT2fhRgceC0CQ
|
||||
45db0d4bkGtxBk21sZFJgbCV1FcNRg
|
||||
45db468b-DKE8kUTV42eYMYmk8_g9g
|
||||
45dd21d1rVPnDfvZTNVHLalcjnbsZw
|
||||
45ddaf15_Ld7IAEpUUP3FJjJ-oSEFg
|
||||
45ddc763DodLG1BqH_wRBJXMbCSB5A
|
||||
45ddc8282KnaNGuijqCTphlXV_eeog
|
@ -1,80 +0,0 @@
|
||||
# This is the BitKeeper configuration for this package.
|
||||
#
|
||||
# Please take a minute to fill it out carefully, it needs to be accurate.
|
||||
#
|
||||
# NOTICE: you really do want to fill this out, if something goes wrong
|
||||
# with your repository, or if someone changes the logging policy, we
|
||||
# send mail to the contact listed here for confirmation.
|
||||
#
|
||||
# BitKeeper can maintain a log of your change comments (not your source,
|
||||
# just the comments) on a centralized server. This is useful as your
|
||||
# project grows, it gives people a place to go see what is happening on
|
||||
# a per project basis. This is especially useful for distributed developers.
|
||||
#
|
||||
|
||||
#
|
||||
# Name of the project, such as "BitKeeper" or "The GNU C compiler".
|
||||
#
|
||||
description: MySQL - fast and reliable SQL database
|
||||
#
|
||||
# Open Logging server. This site is where users go to see the
|
||||
# changelog comments for all instances of this repository. This must
|
||||
# be logging@openlogging.org for usage under the terms of the BKL,
|
||||
# "bk help bkl" will show you the default licensing terms. If this
|
||||
# repository is commercial it can be an internal email address or "none"
|
||||
# to disable logging.
|
||||
#
|
||||
logging: none
|
||||
#
|
||||
# If this field is set, all checkins will appear to be made by this user,
|
||||
# in effect making this a single user package. Single user packages are
|
||||
# free from the logging constraint. In order for the package to really
|
||||
# be free, both the single_user and the single_host field need to be set.
|
||||
#
|
||||
single_user:
|
||||
#
|
||||
# If this field is set, all checkins will appear to be made on this host.
|
||||
#
|
||||
single_host:
|
||||
#
|
||||
# Contact person for this project. This is whoever is the person that
|
||||
# should be contacted with update information or contacted if BitKeeper
|
||||
# discovers a problem which requires local intervention. Please make the
|
||||
# contact information accurate so we can support you.
|
||||
#
|
||||
contact: sys@mysql.com
|
||||
#
|
||||
# It is very important that this email address is filled out and accurate.
|
||||
# If someone converts your repository to open logging (which you may not
|
||||
# want), we will contact this email address for confirmation that you really
|
||||
# did want open logging. If the email address is inaccurate and we get no
|
||||
# response from anyone else at your location after 90 days, then open logging
|
||||
# will be implicitly approved.
|
||||
#
|
||||
email: sys@mysql.com
|
||||
#
|
||||
# Add your street address if you like, it is optional.
|
||||
#
|
||||
street:
|
||||
city:
|
||||
state:
|
||||
postal:
|
||||
country:
|
||||
phone:
|
||||
cell:
|
||||
pager:
|
||||
#
|
||||
# Business Hours when we can contact you if you left a phone number.
|
||||
#
|
||||
hours:
|
||||
[serg:]checkout:get
|
||||
[arjen:]checkout:get
|
||||
[kostja:]checkout:get
|
||||
[nick:]checkout:get
|
||||
[jonas:]checkout:get
|
||||
[tomas:]checkout:get
|
||||
[guilhem:]checkout:get
|
||||
[pekka:]checkout:get
|
||||
[msvensson:]checkout:get
|
||||
checkout:edit
|
||||
eoln:unix
|
2344
BitKeeper/etc/gone
2344
BitKeeper/etc/gone
File diff suppressed because it is too large
Load Diff
@ -1,314 +0,0 @@
|
||||
Administrador@light.
|
||||
Administrator@co3064164-a.
|
||||
Administrator@co3064164-a.rochd1.qld.optushome.com.au
|
||||
Administrator@fred.
|
||||
Administrator@w2k.
|
||||
Greg@greg-laptop.
|
||||
Miguel@light.local
|
||||
Sinisa@sinisa.nasamreza.org
|
||||
WAX@sergbook.mysql.com
|
||||
acurtis@ltantony.rdg.cyberkinetica.homeunix.net
|
||||
acurtis@pcgem.rdg.cyberkinetica.com
|
||||
acurtis@xiphis.org
|
||||
administrador@light.hegel.local
|
||||
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
|
||||
akishkin@work.mysql.com
|
||||
anjuta@arthur.local
|
||||
antony@ltantony.dsl-verizon.net
|
||||
antony@ltantony.mysql.com
|
||||
antony@ltantony.rdg.cyberkinetica.com
|
||||
antony@ltantony.rdg.cyberkinetica.homeunix.net
|
||||
antony@ltantony.xiphis.org
|
||||
arjen@bitbike.com
|
||||
arjen@co3064164-a.bitbike.com
|
||||
arjen@fred.bitbike.com
|
||||
arjen@george.bitbike.com
|
||||
autotest@mc01.ndb.mysql.com
|
||||
bar@bar.intranet.mysql.r18.ru
|
||||
bar@bar.mysql.r18.ru
|
||||
bar@bar.udmsearch.izhnet.ru
|
||||
bar@deer.(none)
|
||||
bar@eagle.intranet.mysql.r18.ru
|
||||
bar@gw.udmsearch.izhnet.ru
|
||||
bar@mysql.com
|
||||
bar@noter.intranet.mysql.r18.ru
|
||||
bell@51.0.168.192.in-addr.arpa
|
||||
bell@52.0.168.192.in-addr.arpa
|
||||
bell@book.sanja.is.com.ua
|
||||
bell@laptop.sanja.is.com.ua
|
||||
bell@sanja.is.com.ua
|
||||
bk@admin.bk
|
||||
bk@mysql.r18.ru
|
||||
brian@avenger.(none)
|
||||
brian@brian-akers-computer.local
|
||||
brian@private-client-ip-101.oz.net
|
||||
brian@zim.(none)
|
||||
carsten@tsort.bitbybit.dk
|
||||
cps@silver_beast.(none)
|
||||
davida@isil.mysql.com
|
||||
dean@mysql.com
|
||||
dellis@goetia.(none)
|
||||
dlenev@brandersnatch.localdomain
|
||||
dlenev@build.mysql.com
|
||||
dlenev@jabberwock.localdomain
|
||||
dlenev@mysql.com
|
||||
ejonore@mc03.ndb.mysql.com
|
||||
elliot@mysql.com
|
||||
evgen@moonbone.(none)
|
||||
evgen@moonbone.local
|
||||
gbichot@bk-internal.mysql.com
|
||||
gbichot@production.mysql.com
|
||||
gbichot@quadita2.mysql.com
|
||||
gbichot@quadxeon.mysql.com
|
||||
geert@kriem.kemuri.org
|
||||
georg@beethoven.local
|
||||
georg@beethoven.site
|
||||
georg@lmy002.wdf.sap.corp
|
||||
gerberb@ou800.zenez.com
|
||||
gluh@eagle.intranet.mysql.r18.ru
|
||||
gluh@gluh.(none)
|
||||
gluh@gluh.mysql.r18.ru
|
||||
gluh@mysql.com
|
||||
gordon@zero.local.lan
|
||||
greg@gcw.ath.cx
|
||||
greg@mysql.com
|
||||
guilhem@mysql.com
|
||||
gweir@build.mysql.com
|
||||
gweir@work.mysql.com
|
||||
harrison@mysql.com
|
||||
harry@corona.lordblink.com
|
||||
hartmut@mysql.com
|
||||
heikki@donna.mysql.fi
|
||||
heikki@hundin.mysql.fi
|
||||
heikki@rescue.
|
||||
heikki@work.mysql.com
|
||||
hf@bison.(none)
|
||||
hf@bisonxp.(none)
|
||||
hf@deer.(none)
|
||||
hf@deer.mysql.r18.ru
|
||||
hf@genie.(none)
|
||||
holyfoot@mysql.com
|
||||
igor@hundin.mysql.fi
|
||||
igor@igor-inspiron.creware.com
|
||||
igor@linux.local
|
||||
igor@rurik.mysql.com
|
||||
ingo@mysql.com
|
||||
jan@hundin.mysql.fi
|
||||
jani@a193-229-222-105.elisa-laajakaista.fi
|
||||
jani@a193-229-222-2.elisa-laajakaista.fi
|
||||
jani@a80-186-24-72.elisa-laajakaista.fi
|
||||
jani@a80-186-41-201.elisa-laajakaista.fi
|
||||
jani@a80-186-8-224.elisa-laajakaista.fi
|
||||
jani@dsl-jkl1657.dial.inet.fi
|
||||
jani@dsl-kpogw4gb5.dial.inet.fi
|
||||
jani@hynda.(none)
|
||||
jani@hynda.mysql.fi
|
||||
jani@ibmlab.site
|
||||
jani@janikt.pp.saunalahti.fi
|
||||
jani@linux.local
|
||||
jani@rhols221.adsl.netsonic.fi
|
||||
jani@rhols221.arenanet.fi
|
||||
jani@ua126d19.elisa.omakaista.fi
|
||||
jani@ua141d10.elisa.omakaista.fi
|
||||
jani@ua167d18.elisa.omakaista.fi
|
||||
jani@ua72d24.elisa.omakaista.fi
|
||||
jcole@abel.spaceapes.com
|
||||
jcole@main.burghcom.com
|
||||
jcole@mugatu.jcole.us
|
||||
jcole@mugatu.spaceapes.com
|
||||
jcole@sarvik.tfr.cafe.ee
|
||||
jcole@tetra.spaceapes.com
|
||||
jimw@mysql.com
|
||||
joerg@mysql.com
|
||||
joerg@trift-lap.fambruehe
|
||||
jon@gigan.
|
||||
jonas@mysql.com
|
||||
joreland@bk-internal.mysql.com
|
||||
joreland@mysql.com
|
||||
jorge@linux.jorge.mysql.com
|
||||
jplindst@t41.(none)
|
||||
kaa@polly.local
|
||||
kaj@work.mysql.com
|
||||
kent@mysql.com
|
||||
konstantin@mysql.com
|
||||
kosipov@production.mysql.com
|
||||
kostja@oak.local
|
||||
lars@mysql.com
|
||||
lenz@kallisto.mysql.com
|
||||
lenz@mysql.com
|
||||
magnus@msdesk.mysql.com
|
||||
magnus@neptunus.(none)
|
||||
magnus@shellback.(none)
|
||||
marko@hundin.mysql.fi
|
||||
marty@flipper.bredbandsbolaget.se
|
||||
marty@linux.site
|
||||
marty@shark.
|
||||
mats@mysql.com
|
||||
matt@booty.(none)
|
||||
matt@mysql.com
|
||||
matthias@three.local.lan
|
||||
miguel@hegel.(none)
|
||||
miguel@hegel.br
|
||||
miguel@hegel.local
|
||||
miguel@hegel.txg
|
||||
miguel@hegel.txg.br
|
||||
miguel@light.
|
||||
miguel@light.local
|
||||
miguel@sartre.local
|
||||
mikael@mc04.(none)
|
||||
mikael@orca.ndb.mysql.com
|
||||
mikron@c-fb0ae253.1238-1-64736c10.cust.bredbandsbolaget.se
|
||||
mikron@mikael-ronstr-ms-dator.local
|
||||
mleich@mysql.com
|
||||
mmatthew@markslaptop.
|
||||
monty@bitch.mysql.fi
|
||||
monty@butch.
|
||||
monty@donna.mysql.fi
|
||||
monty@hundin.mysql.fi
|
||||
monty@mashka.(none)
|
||||
monty@mashka.mysql.fi
|
||||
monty@mishka.local
|
||||
monty@mishka.mysql.fi
|
||||
monty@mysql.com
|
||||
monty@narttu.
|
||||
monty@narttu.mysql.fi
|
||||
monty@rescue.
|
||||
monty@tik.
|
||||
monty@tik.mysql.fi
|
||||
monty@tramp.mysql.fi
|
||||
monty@work.mysql.com
|
||||
mronstrom@build.mysql.com
|
||||
mronstrom@mysql.com
|
||||
mskold@bk-internal.mysql.com
|
||||
mskold@mysql.com
|
||||
msvensson@build.mysql.com
|
||||
msvensson@neptunus.(none)
|
||||
msvensson@neptunus.homeip.net
|
||||
mwagner@cash.mwagner.org
|
||||
mwagner@evoq.mwagner.org
|
||||
mwagner@here.mwagner.org
|
||||
mwagner@mysql.com
|
||||
mwagner@ultrafly.mysql.com
|
||||
mwagner@work.mysql.com
|
||||
mydev@mysql.com
|
||||
mysql@home.(none)
|
||||
mysql@mc04.(none)
|
||||
mysqldev@bk-internal.mysql.com
|
||||
mysqldev@build.mysql2.com
|
||||
mysqldev@melody.local
|
||||
mysqldev@mysql.com
|
||||
mysqldev@o2k.irixworld.net
|
||||
ndbdev@dl145b.mysql.com
|
||||
ndbdev@dl145c.mysql.com
|
||||
ndbdev@eel.hemma.oreland.se
|
||||
ndbdev@ndbmaster.mysql.com
|
||||
ndbdev@shark.
|
||||
nick@mysql.com
|
||||
nick@nick.leippe.com
|
||||
obarnir@mysql.com
|
||||
papa@gbichot.local
|
||||
patg@krsna.
|
||||
patg@krsna.patg.net
|
||||
patg@patrick-galbraiths-computer.local
|
||||
patg@patrick.local
|
||||
patg@pc248.lfp.kcls.org
|
||||
patg@radha.local
|
||||
paul@central.snake.net
|
||||
paul@frost.snake.net
|
||||
paul@ice.local
|
||||
paul@ice.snake.net
|
||||
paul@kite-hub.kitebird.com
|
||||
paul@snake-hub.snake.net
|
||||
paul@teton.kitebird.com
|
||||
pekka@mysql.com
|
||||
pem@mysql.com
|
||||
pem@per-erik-martins-dator.local
|
||||
peter@linux.local
|
||||
peter@mysql.com
|
||||
peterg@mysql.com
|
||||
petr@mysql.com
|
||||
pgulutzan@linux.local
|
||||
pmartin@build.mysql2.com
|
||||
psergey@psergey-rh8.(none)
|
||||
psergey@psergey.(none)
|
||||
ram@deer.(none)
|
||||
ram@gw.mysql.r18.ru
|
||||
ram@gw.udmsearch.izhnet.ru
|
||||
ram@mysql.r18.ru
|
||||
ram@ram-book.(none)
|
||||
ram@ram.(none)
|
||||
ramil@mysql.com
|
||||
ranger@regul.home.lan
|
||||
rburnett@bk-internal.mysql.com
|
||||
rburnett@build.mysql.com
|
||||
reggie@bob.(none)
|
||||
reggie@mdk10.(none)
|
||||
reggie@monster.
|
||||
root@home.(none)
|
||||
root@mc04.(none)
|
||||
root@x3.internalnet
|
||||
salle@banica.(none)
|
||||
salle@geopard.(none)
|
||||
salle@geopard.online.bg
|
||||
salle@vafla.home
|
||||
salle@vafla.online.bg
|
||||
sasha@mysql.sashanet.com
|
||||
schwenke@lmy003.wdf.sap.corp
|
||||
schwenke@lmy003.xl.local
|
||||
serg@build.mysql.com
|
||||
serg@build.mysql2.com
|
||||
serg@mysql.com
|
||||
serg@serg.mylan
|
||||
serg@serg.mysql.com
|
||||
serg@sergbook.mylan
|
||||
serg@sergbook.mysql.com
|
||||
sergefp@mysql.com
|
||||
shuichi@mysql.com
|
||||
sinisa@rhols221.adsl.netsonic.fi
|
||||
stewart@mysql.com
|
||||
svoj@mysql.com
|
||||
tfr@beta.frontier86.ee
|
||||
tfr@indrek.tfr.cafe.ee
|
||||
tfr@sarvik.tfr.cafe.ee
|
||||
tim@bitch.mysql.fi
|
||||
tim@black.box
|
||||
tim@hundin.mysql.fi
|
||||
tim@sand.box
|
||||
tim@siva.hindu.god
|
||||
tim@threads.polyesthetic.msg
|
||||
tim@white.box
|
||||
tim@work.mysql.com
|
||||
timour@mysql.com
|
||||
tom@basil-firewall.home.com
|
||||
tomas@mc05.(none)
|
||||
tomas@poseidon.(none)
|
||||
tomas@poseidon.bredbandsbolaget.se
|
||||
tomas@poseidon.elisa-laajakaista.fi
|
||||
tomas@poseidon.ndb.mysql.com
|
||||
tonu@hundin.mysql.fi
|
||||
tonu@volk.internalnet
|
||||
tonu@x153.internalnet
|
||||
tonu@x3.internalnet
|
||||
tsmith@build.mysql.com
|
||||
tulin@build.mysql.com
|
||||
tulin@dl145b.mysql.com
|
||||
tulin@dl145c.mysql.com
|
||||
tulin@mysql.com
|
||||
ulli@morbus.(none)
|
||||
venu@hundin.mysql.fi
|
||||
venu@myvenu.com
|
||||
venu@work.mysql.com
|
||||
vtkachenko@intelp4d.mysql.com
|
||||
vtkachenko@mail.mysql.com
|
||||
vva@eagle.mysql.r18.ru
|
||||
vva@genie.(none)
|
||||
vva@mysql.r18.ru
|
||||
walrus@kishkin.ru
|
||||
walrus@mysql.com
|
||||
wax@kishkin.ru
|
||||
wax@mysql.com
|
||||
worm@altair.is.lan
|
||||
zak@balfor.local
|
||||
zak@linux.local
|
||||
zak@mysql.com
|
||||
zgreant@mysql.com
|
@ -1 +0,0 @@
|
||||
dev@mysql.com
|
@ -1,7 +0,0 @@
|
||||
BK|scripts/safe_mysqld.sh|19700101030959|01930|d0a3cc73fd1b0d8d tim@localhost.polyesthetic.msg|scripts/safe_mysqld.sh|20000802235627|38519
|
||||
bk@work.mysql.com|BitKeeper/etc/logging_ok|20000731192914|03271|5e19f6258f804ffe arjen@co3064164-a.bitbike.com|BitKeeper/etc/logging_ok|20011212060636|33009
|
||||
bk@work.mysql.com|BitKeeper/etc/logging_ok|20000731192914|03271|5e19f6258f804ffe jcole@tetra.bedford.progress.com|BitKeeper/etc/logging_ok|20001004201211|30554
|
||||
bk@work.mysql.com|BitKeeper/etc/logging_ok|20000731192914|03271|5e19f6258f804ffe sasha@work.mysql.com|BitKeeper/etc/logging_ok|20000802223223|24242
|
||||
bk@work.mysql.com|BitKeeper/etc/logging_ok|20000731192914|03271|5e19f6258f804ffe tim@localhost.polyesthetic.msg|BitKeeper/etc/logging_ok|20000802235640|27343
|
||||
bk@work.mysql.com|ChangeSet|20000731191004|44203|eae70093a6122e66+ sasha@work.mysql.com|ChangeSet|20000802223249|54774
|
||||
bk@work.mysql.com|ChangeSet|20000731191004|44203|eae70093a6122e66+ tim@localhost.polyesthetic.msg|ChangeSet|20000802235645|56533
|
@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
shift
|
||||
REPO=`bk gethost`:`pwd`
|
||||
TO=dev@mysql.com
|
||||
if [ -f BitKeeper/etc/pushed -a "$BK_OUTGOING" = OK ]
|
||||
then (
|
||||
echo ${USER}@"$@"
|
||||
echo ""
|
||||
bk changes - < BitKeeper/etc/pushed
|
||||
) | mail -s "Outgoing from $REPO" $TO
|
||||
else
|
||||
echo ${USER}@"$@"| mail -s "Outgoing from $REPO = $BK_OUTGOING" $TO
|
||||
fi
|
@ -1,134 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#shift
|
||||
if [ -n "$BK_USER" ]
|
||||
then
|
||||
COMMITTER=$BK_USER
|
||||
else
|
||||
COMMITTER=$USER
|
||||
fi
|
||||
FROM=$COMMITTER@mysql.com
|
||||
COMMITS=commits@lists.mysql.com
|
||||
DOCS=docs-commit@mysql.com
|
||||
LIMIT=10000
|
||||
VERSION="5.1"
|
||||
BKROOT=`bk root`
|
||||
|
||||
if [ -x /usr/sbin/sendmail ]; then
|
||||
SENDMAIL=/usr/sbin/sendmail
|
||||
else
|
||||
SENDMAIL=sendmail
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
IS_MERGE=`bk changes -r+ -k -m`
|
||||
if [ "$IS_MERGE" = "" ]
|
||||
then
|
||||
echo Merge changeset, not sending mails
|
||||
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
|
||||
|
||||
#++
|
||||
# commits@ or dev-private@ mail
|
||||
#--
|
||||
|
||||
LIST="commits"
|
||||
TO="commits@lists.mysql.com"
|
||||
if [ -f .tree-is-private ]
|
||||
then
|
||||
LIST="dev-private"
|
||||
TO="dev-private@mysql.com"
|
||||
fi
|
||||
|
||||
echo "Notifying $LIST list at $TO"
|
||||
(
|
||||
cat <<EOF
|
||||
List-ID: <bk.mysql-$VERSION>
|
||||
From: $FROM
|
||||
To: $TO
|
||||
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 $COMMITTER. When $COMMITTER 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 rset -r+ -ah | bk gnupatch -h -dup -T
|
||||
) | bk sed -e ${LIMIT}q > $BKROOT/BitKeeper/tmp/commits.txt
|
||||
|
||||
$SENDMAIL -t < $BKROOT/BitKeeper/tmp/commits.txt
|
||||
|
||||
#++
|
||||
# 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 rset -r+ -ah | bk gnupatch -h -dup -T
|
||||
) > $BKROOT/BitKeeper/tmp/docs.txt
|
||||
$SENDMAIL -t < $BKROOT/BitKeeper/tmp/docs.txt
|
||||
fi
|
||||
|
||||
else
|
||||
echo "commit failed because '$BK_STATUS', you may need to re-clone..."
|
||||
fi
|
@ -1,22 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
# Don't run unless commit was successful
|
||||
check_status() || exit 0;
|
||||
|
||||
my $cset = latest_cset();
|
||||
|
||||
# Read most recent ChangeSet's changed files. Send merge changes along, since
|
||||
# they'll need to be incorporated in InnoDB's source tree eventually.
|
||||
my $changes = innodb_get_changes('cset', $cset, 'yes')
|
||||
or exit 0;
|
||||
|
||||
innodb_send_changes_email($cset, $changes)
|
||||
or exit 1;
|
||||
|
||||
exit 0;
|
@ -1,30 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
# Don't run unless push/pull was successful
|
||||
check_status() or exit 0;
|
||||
|
||||
# Don't run if push/pull is in local clones
|
||||
exit 0 if repository_type() eq 'local';
|
||||
|
||||
# For each pushed ChangeSet, check it for InnoDB files and send
|
||||
# diff of entire ChangeSet to InnoDB developers if such changes
|
||||
# exist.
|
||||
|
||||
my $error = 0;
|
||||
|
||||
foreach my $cset (read_bk_csetlist())
|
||||
{
|
||||
my $changes = innodb_get_changes('cset', $cset, 'yes')
|
||||
or next;
|
||||
|
||||
innodb_send_changes_email($cset, $changes)
|
||||
or $error = 1;
|
||||
}
|
||||
|
||||
exit ($error == 0 ? 0 : 1);
|
@ -1,22 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$BK_USER" = "Administrator" -o "$BK_USER" = "mysqldev" ]
|
||||
then
|
||||
echo "Error: you cannot commit as 'Administrator' or 'mysqldev' user."
|
||||
echo "as a workaround set BK_USER to your nickname"
|
||||
echo "e.g.: export BK_USER='bar'"
|
||||
echo ""
|
||||
echo "Checkin FAILED!"
|
||||
echo "Set BK_USER and retry."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$REAL_EMAIL" = "" ]
|
||||
then
|
||||
echo "Error: you must set REAL_EMAIL in your profile"
|
||||
echo "e.g.: export REAL_EMAIL='Joe Dow <joe@foo.bar>'"
|
||||
echo ""
|
||||
echo "Commit FAILED!"
|
||||
echo "Set REAL_EMAIL and retry."
|
||||
exit 1
|
||||
fi
|
@ -1,26 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
my $status = 0;
|
||||
|
||||
my $pending = $ENV{'BK_PENDING'};
|
||||
exit 0 unless -f $pending;
|
||||
|
||||
open FI, "<", $pending || exit 0;
|
||||
while(<FI>) {
|
||||
my ($file, $stuff) = split /\|/, $_, 2;
|
||||
next unless -f $file;
|
||||
$file =~ s/^(.*)\/([^\/]*)$/$2/;
|
||||
my $path = $1;
|
||||
opendir DIR, $path;
|
||||
my @files = sort map { lc } readdir DIR;
|
||||
closedir DIR;
|
||||
my %count = ();
|
||||
$count{$_}++ for @files;
|
||||
@files = grep { $count{$_} > 1 } keys %count;
|
||||
if(@files > 0) {
|
||||
print "$path/$file: duplicate file names: " . (join " ", @files) . "\n";
|
||||
$status = 1;
|
||||
}
|
||||
}
|
||||
close FI;
|
||||
|
||||
exit $status;
|
@ -1,21 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
require "$FindBin::Bin/triggers-lib.pl";
|
||||
|
||||
die "$0: Script error: \$BK_PENDING is not set in pre-commit trigger\n"
|
||||
unless defined $ENV{BK_PENDING};
|
||||
|
||||
# Read changed files from $BK_PENDING directly. Do not bother user about
|
||||
# merge changes; they don't have any choice, the merge must be done.
|
||||
my $changes = innodb_get_changes('file', $ENV{BK_PENDING}, undef)
|
||||
or exit 0;
|
||||
|
||||
innodb_inform_and_query_user($changes)
|
||||
or exit 1; # Abort commit
|
||||
|
||||
# OK, continue with commit
|
||||
exit 0;
|
@ -1,22 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$BK_USER" = "Administrator" -o "$BK_USER" = "mysqldev" ]
|
||||
then
|
||||
echo "Error: you cannot checkin as 'Administrator' or 'mysqldev' user."
|
||||
echo "as a workaround set BK_USER to your nickname"
|
||||
echo "e.g.: export BK_USER='bar'"
|
||||
echo ""
|
||||
echo "Checkin FAILED!"
|
||||
echo "Set BK_USER and retry."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ `tail -c1 $BK_FILE` ]
|
||||
then
|
||||
echo "File $BK_FILE does not end with a new-line character!"
|
||||
echo ""
|
||||
echo "Checkin FAILED!"
|
||||
echo "Fix the problem and retry."
|
||||
exit 1
|
||||
fi
|
||||
|
@ -1,82 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $event= $ENV{BK_EVENT};
|
||||
unless($event eq 'outgoing pull' || $event eq 'outgoing push' ||
|
||||
$event eq 'resolve') {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
my @bad_csets=
|
||||
( 'monty@mysql.com|ChangeSet|20060418090255|16983',
|
||||
'monty@mysql.com|ChangeSet|20060418090458|02628',
|
||||
'monty@mysql.com|ChangeSet|20060419084236|49576',
|
||||
'monty@mysql.com|ChangeSet|20060503164655|51444',
|
||||
'monty@mysql.com|ChangeSet|20060503225814|60133',
|
||||
'monty@mysql.com|ChangeSet|20060504033006|54878',
|
||||
'monty@mysql.com|ChangeSet|20060504130520|48660',
|
||||
'monty@mysql.com|ChangeSet|20060504164102|03511',
|
||||
'monty@mysql.com|ChangeSet|20060504193112|04109',
|
||||
'monty@mysql.com|ChangeSet|20060505015314|02799',
|
||||
'monty@mysql.com|ChangeSet|20060505084007|16704',
|
||||
'monty@mysql.com|ChangeSet|20060505104008|16695',
|
||||
'monty@mysql.com|ChangeSet|20060505171041|13924',
|
||||
'monty@mysql.com|ChangeSet|20060508121933|13866',
|
||||
'monty@mysql.com|ChangeSet|20060508160902|15029',
|
||||
'monty@mysql.com|ChangeSet|20060509145448|38636',
|
||||
'monty@mysql.com|ChangeSet|20060509224111|40037',
|
||||
'monty@mysql.com|ChangeSet|20060510090758|40678',
|
||||
'monty@mysql.com|ChangeSet|20060515164104|46760',
|
||||
'monty@mysql.com|ChangeSet|20060530114549|35852',
|
||||
'monty@mysql.com|ChangeSet|20060605032828|23579',
|
||||
'monty@mysql.com|ChangeSet|20060605033011|10641',
|
||||
'monty@mysql.com|ChangeSet|20060605060652|09843',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605094744|10838',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605105746|11800',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605122345|12772',
|
||||
'jmiller@mysql.com|ChangeSet|20060531210831|36442',
|
||||
'jmiller@mysql.com|ChangeSet|20060602151941|36118',
|
||||
'jmiller@mysql.com|ChangeSet|20060602152136|27762',
|
||||
'jmiller@mysql.com|ChangeSet|20060605121748|12864',
|
||||
'jmiller@mysql.com|ChangeSet|20060605160304|14798',
|
||||
'jimw@mysql.com|ChangeSet|20060605210201|14667',
|
||||
'igor@rurik.mysql.com|ChangeSet|20060605220727|15265',
|
||||
'igor@rurik.mysql.com|ChangeSet|20060605221206|15134',
|
||||
'stewart@mysql.com|ChangeSet|20060525073521|11169',
|
||||
'stewart@mysql.com|ChangeSet|20060605154220|12975',
|
||||
'stewart@mysql.com|ChangeSet|20060606040001|15337',
|
||||
'hartmut@mysql.com/linux.site|ChangeSet|20070413121444|50289'
|
||||
);
|
||||
|
||||
# Read the list of changesets.
|
||||
my $csetlist = $ENV{BK_CSETLIST};
|
||||
if(!defined($csetlist) || !open(FH, '<', $csetlist)) {
|
||||
die "Failed to open list of incoming changesets '$csetlist': $!.\n";
|
||||
}
|
||||
my @csets = <FH>;
|
||||
close FH;
|
||||
|
||||
# Reject any attempt to push/pull a bad changeset.
|
||||
for my $cs (@csets) {
|
||||
# Do this the raw way, don't want to be bitten by different EOL conventions
|
||||
# on server and client (Unix/Windows/Mac).
|
||||
$cs =~ s/\x0d?\x0a?$//s;
|
||||
if(grep($_ eq $cs, @bad_csets)) {
|
||||
print <<END;
|
||||
BAD CHANGESET DETECTED! $event REJECTED!
|
||||
|
||||
The changeset with key '$cs' was detected in the attempted push or pull.
|
||||
This changeset is from the corrupt part of the crashed mysql-5.1-new tree.
|
||||
Pushing or pulling this changeset would result in corruption of the new tree,
|
||||
and therefore the operation has been rejected.
|
||||
|
||||
Contact Kristian Nielsen (knielsen\@mysql.com, IRC knielsen) if you have any
|
||||
questions regarding this.
|
||||
END
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
exit 0;
|
@ -1,82 +0,0 @@
|
||||
#! /usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $event= $ENV{BK_EVENT};
|
||||
unless($event eq 'outgoing pull' || $event eq 'outgoing push' ||
|
||||
$event eq 'resolve') {
|
||||
exit 0;
|
||||
}
|
||||
|
||||
my @bad_csets=
|
||||
( 'monty@mysql.com|ChangeSet|20060418090255|16983',
|
||||
'monty@mysql.com|ChangeSet|20060418090458|02628',
|
||||
'monty@mysql.com|ChangeSet|20060419084236|49576',
|
||||
'monty@mysql.com|ChangeSet|20060503164655|51444',
|
||||
'monty@mysql.com|ChangeSet|20060503225814|60133',
|
||||
'monty@mysql.com|ChangeSet|20060504033006|54878',
|
||||
'monty@mysql.com|ChangeSet|20060504130520|48660',
|
||||
'monty@mysql.com|ChangeSet|20060504164102|03511',
|
||||
'monty@mysql.com|ChangeSet|20060504193112|04109',
|
||||
'monty@mysql.com|ChangeSet|20060505015314|02799',
|
||||
'monty@mysql.com|ChangeSet|20060505084007|16704',
|
||||
'monty@mysql.com|ChangeSet|20060505104008|16695',
|
||||
'monty@mysql.com|ChangeSet|20060505171041|13924',
|
||||
'monty@mysql.com|ChangeSet|20060508121933|13866',
|
||||
'monty@mysql.com|ChangeSet|20060508160902|15029',
|
||||
'monty@mysql.com|ChangeSet|20060509145448|38636',
|
||||
'monty@mysql.com|ChangeSet|20060509224111|40037',
|
||||
'monty@mysql.com|ChangeSet|20060510090758|40678',
|
||||
'monty@mysql.com|ChangeSet|20060515164104|46760',
|
||||
'monty@mysql.com|ChangeSet|20060530114549|35852',
|
||||
'monty@mysql.com|ChangeSet|20060605032828|23579',
|
||||
'monty@mysql.com|ChangeSet|20060605033011|10641',
|
||||
'monty@mysql.com|ChangeSet|20060605060652|09843',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605094744|10838',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605105746|11800',
|
||||
'msvensson@neptunus.(none)|ChangeSet|20060605122345|12772',
|
||||
'jmiller@mysql.com|ChangeSet|20060531210831|36442',
|
||||
'jmiller@mysql.com|ChangeSet|20060602151941|36118',
|
||||
'jmiller@mysql.com|ChangeSet|20060602152136|27762',
|
||||
'jmiller@mysql.com|ChangeSet|20060605121748|12864',
|
||||
'jmiller@mysql.com|ChangeSet|20060605160304|14798',
|
||||
'jimw@mysql.com|ChangeSet|20060605210201|14667',
|
||||
'igor@rurik.mysql.com|ChangeSet|20060605220727|15265',
|
||||
'igor@rurik.mysql.com|ChangeSet|20060605221206|15134',
|
||||
'stewart@mysql.com|ChangeSet|20060525073521|11169',
|
||||
'stewart@mysql.com|ChangeSet|20060605154220|12975',
|
||||
'stewart@mysql.com|ChangeSet|20060606040001|15337',
|
||||
'hartmut@mysql.com/linux.site|ChangeSet|20070413121444|50289'
|
||||
);
|
||||
|
||||
# Read the list of changesets.
|
||||
my $csetlist = $ENV{BK_CSETLIST};
|
||||
if(!defined($csetlist) || !open(FH, '<', $csetlist)) {
|
||||
die "Failed to open list of incoming changesets '$csetlist': $!.\n";
|
||||
}
|
||||
my @csets = <FH>;
|
||||
close FH;
|
||||
|
||||
# Reject any attempt to push/pull a bad changeset.
|
||||
for my $cs (@csets) {
|
||||
# Do this the raw way, don't want to be bitten by different EOL conventions
|
||||
# on server and client (Unix/Windows/Mac).
|
||||
$cs =~ s/\x0d?\x0a?$//s;
|
||||
if(grep($_ eq $cs, @bad_csets)) {
|
||||
print <<END;
|
||||
BAD CHANGESET DETECTED! $event REJECTED!
|
||||
|
||||
The changeset with key '$cs' was detected in the attempted push or pull.
|
||||
This changeset is from the corrupt part of the crashed mysql-5.1-new tree.
|
||||
Pushing or pulling this changeset would result in corruption of the new tree,
|
||||
and therefore the operation has been rejected.
|
||||
|
||||
Contact Kristian Nielsen (knielsen\@mysql.com, IRC knielsen) if you have any
|
||||
questions regarding this.
|
||||
END
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
exit 0;
|
@ -1,356 +0,0 @@
|
||||
# To use this convenience library in a trigger, simply require it at
|
||||
# at the top of the script. For example:
|
||||
#
|
||||
# #! /usr/bin/perl
|
||||
#
|
||||
# use FindBin;
|
||||
# require "$FindBin::Bin/triggers-lib.pl";
|
||||
#
|
||||
# FindBin is needed, because sometimes a trigger is called from the
|
||||
# RESYNC directory, and the trigger dir is ../BitKeeper/triggers
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Carp;
|
||||
use FindBin;
|
||||
|
||||
|
||||
my $mysql_version = "5.1";
|
||||
|
||||
# These addresses must be kept current in all MySQL versions.
|
||||
# See the wiki page InnoDBandOracle.
|
||||
#my @innodb_to_email = ('dev_innodb_ww@oracle.com');
|
||||
#my @innodb_cc_email = ('dev-innodb@mysql.com');
|
||||
# FIXME: Keep this for testing; remove it once it's been used for a
|
||||
# week or two.
|
||||
my @innodb_to_email = ('tim@mysql.com');
|
||||
my @innodb_cc_email = ();
|
||||
|
||||
# This is for MySQL >= 5.1. Regex which defines the InnoDB files
|
||||
# which should generally not be touched by MySQL developers.
|
||||
my $innodb_files_description = <<EOF;
|
||||
storage/innobase/*
|
||||
mysql-test/t/innodb* (except mysql-test/t/innodb_mysql*)
|
||||
mysql-test/r/innodb* (except mysql-test/r/innodb_mysql*)
|
||||
EOF
|
||||
my $innodb_files_regex = qr{
|
||||
^
|
||||
(
|
||||
# Case 1: innobase/*
|
||||
storage/innobase/
|
||||
|
|
||||
# Case 2: mysql-test/[tr]/innodb* (except innodb_mysql*)
|
||||
mysql-test/(t|r)/SCCS/s.innodb
|
||||
# The mysql-test/[tr]/innodb_mysql* are OK to edit
|
||||
(?!_mysql)
|
||||
)
|
||||
}x;
|
||||
|
||||
|
||||
# See 'bk help log', and the format of, e.g., $BK_PENDING.
|
||||
# Important: this already contains the terminating newline!
|
||||
my $file_rev_dspec = ':SFILE:|:REV:\n';
|
||||
|
||||
my $bktmp = "$FindBin::Bin/../tmp";
|
||||
|
||||
my $sendmail;
|
||||
foreach ('/usr/sbin/sendmail', 'sendmail') {
|
||||
$sendmail = $_;
|
||||
last if -x $sendmail;
|
||||
}
|
||||
my $from = $ENV{REAL_EMAIL} || $ENV{USER} . '@mysql.com';
|
||||
|
||||
|
||||
# close_or_warn
|
||||
# $fh file handle to be closed
|
||||
# $description description of the file handle
|
||||
# RETURN Return value of close($fh)
|
||||
#
|
||||
# Print a nice warning message if close() isn't successful. See
|
||||
# perldoc perlvar and perldoc -f close for details.
|
||||
|
||||
sub close_or_warn (*$)
|
||||
{
|
||||
my ($fh, $description) = @_;
|
||||
|
||||
my $status = close $fh;
|
||||
if (not $status) {
|
||||
warn "$0: error on close of '$description': ",
|
||||
($! ? "$!" : "exit status " . ($? >> 8)), "\n";
|
||||
}
|
||||
|
||||
return $status;
|
||||
}
|
||||
|
||||
|
||||
# check_status
|
||||
# $warn If true, warn about bad status
|
||||
# RETURN TRUE, if $BK_STATUS is "OK"; FALSE otherwise
|
||||
#
|
||||
# Also checks the undocumented $BK_COMMIT env variable
|
||||
|
||||
sub check_status
|
||||
{
|
||||
my ($warn) = @_;
|
||||
|
||||
my $status = (grep { defined $_ }
|
||||
$ENV{BK_STATUS}, $ENV{BK_COMMIT}, '<undef>')[0];
|
||||
|
||||
unless ($status eq 'OK')
|
||||
{
|
||||
warn "Bad BK_STATUS '$status'\n" if $warn;
|
||||
return undef;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
# repository_location
|
||||
#
|
||||
# RETURN ('HOST', 'ROOT') for the repository being modified
|
||||
|
||||
sub repository_location
|
||||
{
|
||||
if ($ENV{BK_SIDE} eq 'client') {
|
||||
return ($ENV{BK_HOST}, $ENV{BK_ROOT});
|
||||
} else {
|
||||
return ($ENV{BKD_HOST}, $ENV{BKD_ROOT});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# repository_type
|
||||
# RETURN:
|
||||
# 'main' for repo on bk-internal with post-incoming.bugdb trigger
|
||||
# 'team' for repo on bk-internal with post-incoming.queuepush.pl trigger
|
||||
# 'local' otherwise
|
||||
#
|
||||
# This definition may need to be modified if the host name or triggers change.
|
||||
|
||||
sub repository_type
|
||||
{
|
||||
my ($host, $root) = repository_location();
|
||||
|
||||
return 'local'
|
||||
unless uc($host) eq 'BK-INTERNAL.MYSQL.COM'
|
||||
and -e "$root/BitKeeper/triggers/post-incoming.queuepush.pl";
|
||||
|
||||
return 'main' if -e "$root/BitKeeper/triggers/post-incoming.bugdb";
|
||||
|
||||
return 'team';
|
||||
}
|
||||
|
||||
|
||||
# latest_cset
|
||||
# RETURN Key for most recent ChangeSet
|
||||
|
||||
sub latest_cset {
|
||||
chomp(my $retval = `bk changes -r+ -k`);
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
# read_bk_csetlist
|
||||
# RETURN list of cset keys from $BK_CSETLIST file
|
||||
sub read_bk_csetlist
|
||||
{
|
||||
die "$0: script error: \$BK_CSETLIST not set\n"
|
||||
unless defined $ENV{BK_CSETLIST};
|
||||
|
||||
open CSETS, '<', $ENV{BK_CSETLIST}
|
||||
or die "$0: can't read \$BK_CSETLIST='$ENV{BK_CSETLIST}': $!\n";
|
||||
chomp(my @csets = <CSETS>);
|
||||
close_or_warn(CSETS, "\$BK_CSETLIST='$ENV{BK_CSETLIST}'");
|
||||
|
||||
return @csets;
|
||||
}
|
||||
|
||||
|
||||
# innodb_get_changes
|
||||
# $type 'file' or 'cset'
|
||||
# $value file name (e.g., $BK_PENDING) or ChangeSet key
|
||||
# $want_merge_changes flag; if false, merge changes will be ignored
|
||||
# RETURN A string describing the InnoDB changes, or undef if no changes
|
||||
#
|
||||
# The return value does *not* include ChangeSet comments, only per-file
|
||||
# comments.
|
||||
|
||||
sub innodb_get_changes
|
||||
{
|
||||
my ($type, $value, $want_merge_changes) = @_;
|
||||
|
||||
if ($type eq 'file')
|
||||
{
|
||||
open CHANGES, '<', $value
|
||||
or die "$0: can't read '$value': $!\n";
|
||||
}
|
||||
elsif ($type eq 'cset')
|
||||
{
|
||||
open CHANGES, '-|', "bk changes -r'$value' -v -d'$file_rev_dspec'"
|
||||
or die "$0: can't exec 'bk changes': $!\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
croak "$0: script error: invalid type '$type'";
|
||||
}
|
||||
|
||||
my @changes = grep { /$innodb_files_regex/ } <CHANGES>;
|
||||
|
||||
close_or_warn(CHANGES, "($type, '$value')");
|
||||
|
||||
return undef unless @changes;
|
||||
|
||||
|
||||
# Set up a pipeline of 'bk log' commands to weed out unwanted deltas. We
|
||||
# never want deltas which contain no actual changes. We may not want deltas
|
||||
# which are merges.
|
||||
|
||||
my @filters;
|
||||
|
||||
# This tests if :LI: (lines inserted) or :LD: (lines deleted) is
|
||||
# non-zero. That is, did this delta change the file contents?
|
||||
push @filters,
|
||||
"bk log -d'"
|
||||
. "\$if(:LI: -gt 0){$file_rev_dspec}"
|
||||
. "\$if(:LI: -eq 0){\$if(:LD: -gt 0){$file_rev_dspec}}"
|
||||
. "' -";
|
||||
|
||||
push @filters, "bk log -d'\$unless(:MERGE:){$file_rev_dspec}' -"
|
||||
unless $want_merge_changes;
|
||||
|
||||
my $tmpname = "$bktmp/ibchanges.txt";
|
||||
my $pipeline = join(' | ', @filters) . " > $tmpname";
|
||||
open TMP, '|-', $pipeline
|
||||
or die "$0: can't exec [[$pipeline]]: $!\n";
|
||||
|
||||
print TMP @changes;
|
||||
close_or_warn(TMP, "| $pipeline");
|
||||
|
||||
# Use bk log to describe the changes
|
||||
open LOG, "bk log - < $tmpname |"
|
||||
or die "$0: can't exec 'bk log - < $tmpname': $!\n";
|
||||
my @log = <LOG>;
|
||||
close_or_warn(LOG, "bk log - < $tmpname |");
|
||||
|
||||
unlink $tmpname;
|
||||
|
||||
return undef unless @log;
|
||||
|
||||
return join('', @log);
|
||||
}
|
||||
|
||||
|
||||
# Ask user if they really want to commit.
|
||||
# RETURN TRUE = YES, commit; FALSE = NO, do not commit
|
||||
|
||||
sub innodb_inform_and_query_user
|
||||
{
|
||||
my ($description) = @_;
|
||||
|
||||
my $tmpname = "$bktmp/ibquery.txt";
|
||||
|
||||
open MESSAGE, "> $tmpname"
|
||||
or die "$0: can't write message to '$tmpname': $!";
|
||||
|
||||
print MESSAGE <<EOF;
|
||||
This ChangeSet modifies some files which should normally be changed by
|
||||
InnoDB developers only. In general, MySQL developers should not change:
|
||||
|
||||
$innodb_files_description
|
||||
The following InnoDB files were modified:
|
||||
=========================================================
|
||||
$description
|
||||
=========================================================
|
||||
|
||||
If you understand this, you may Commit these changes. The changes
|
||||
will be sent to the InnoDB developers at @{[join ', ', @innodb_to_email]},
|
||||
CC @{[join ', ', @innodb_cc_email]}.
|
||||
EOF
|
||||
|
||||
close_or_warn(MESSAGE, "$tmpname");
|
||||
|
||||
my $status = system('bk', 'prompt', '-w',
|
||||
'-yCommit these changes', '-nDo not Commit', "-f$tmpname");
|
||||
|
||||
unlink $tmpname;
|
||||
|
||||
return ($status == 0 ? 1 : undef);
|
||||
}
|
||||
|
||||
|
||||
# innodb_send_changes_email
|
||||
# $cset The ChangeSet key
|
||||
# $description A (maybe brief) description of the changes
|
||||
# RETURN TRUE = Success, e-mail sent; FALSE = Failure
|
||||
#
|
||||
# Sends a complete diff of changes in $cset by e-mail.
|
||||
|
||||
sub innodb_send_changes_email
|
||||
{
|
||||
my ($cset, $description) = @_;
|
||||
|
||||
# FIXME: Much of this is duplicated in the 'post-commit' Bourne shell
|
||||
# trigger
|
||||
|
||||
my $cset_short = `bk changes -r'$cset' -d':P:::I:'`;
|
||||
my $cset_key = `bk changes -r'$cset' -d':KEY:'`;
|
||||
|
||||
my ($host, $bk_root) = repository_location();
|
||||
my $type = repository_type();
|
||||
(my $treename = $bk_root) =~ s,^.*/,,;
|
||||
|
||||
print "Nofifying InnoDB developers at ",
|
||||
(join ', ', @innodb_to_email, @innodb_cc_email), "\n";
|
||||
|
||||
open SENDMAIL, '|-', "$sendmail -t"
|
||||
or die "Can't exec '$sendmail -t': $!\n";
|
||||
|
||||
my @headers;
|
||||
push @headers, "List-ID: <bk.innodb-$mysql_version>";
|
||||
push @headers, "From: $from";
|
||||
push @headers, "To: " . (join ', ', @innodb_to_email);
|
||||
push @headers, "Cc: " . (join ', ', @innodb_cc_email) if @innodb_cc_email;
|
||||
push @headers,
|
||||
"Subject: InnoDB changes in $type $mysql_version tree ($cset_short)";
|
||||
push @headers, "X-CSetKey: <$cset_key>";
|
||||
|
||||
print SENDMAIL map { "$_\n" } @headers, '';
|
||||
|
||||
if ($type eq 'main')
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
Changes pushed to $treename by $ENV{USER} affect the following
|
||||
files. These changes are in a $mysql_version main tree. They
|
||||
will be available publicly within 24 hours.
|
||||
EOF
|
||||
}
|
||||
elsif ($type eq 'team')
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
Changes added to $treename by $ENV{USER} affect the
|
||||
following files. These changes are in a $mysql_version team tree.
|
||||
EOF
|
||||
}
|
||||
else
|
||||
{
|
||||
print SENDMAIL <<EOF;
|
||||
A local commit by $ENV{USER} affects the following files. These
|
||||
changes are in a clone of a $mysql_version tree.
|
||||
EOF
|
||||
}
|
||||
print SENDMAIL "\n";
|
||||
print SENDMAIL qx(bk changes -r'$cset');
|
||||
print SENDMAIL "$description";
|
||||
print SENDMAIL "The complete ChangeSet diffs follow.\n\n";
|
||||
print SENDMAIL qx(bk rset -r'$cset' -ah | bk gnupatch -h -dup -T);
|
||||
|
||||
close_or_warn(SENDMAIL, "$sendmail -t")
|
||||
or return undef;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
1;
|
Loading…
x
Reference in New Issue
Block a user