Index: branches/REL1_16/extensions/ExtensionDistributor/svn-invoker.conf.sample |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +$wgExtDistWorkingCopy = '/path/to/mw-working-copy'; |
| 5 | + |
Index: branches/REL1_16/extensions/ExtensionDistributor/svn-invoker.php |
— | — | @@ -9,7 +9,13 @@ |
10 | 10 | exit( 1 ); |
11 | 11 | } |
12 | 12 | |
13 | | -$wgExtDistWorkingCopy = '/mnt/upload5/private/ExtensionDistributor/mw-snapshot'; |
| 13 | +$confFile = dirname( __FILE__ ) . '/svn-invoker.conf'; |
| 14 | +if ( !file_exists( $confFile ) ) { |
| 15 | + echo "Error: please create svn-invoker.conf based on svn-invoker.conf.sample\n"; |
| 16 | + exit( 1 ); |
| 17 | +} |
| 18 | +require( $confFile ); |
| 19 | + |
14 | 20 | svnExecute(); |
15 | 21 | |
16 | 22 | function svnValidate( $s ) { |
Property changes on: branches/REL1_16/extensions/ExtensionDistributor |
___________________________________________________________________ |
Added: svn:mergeinfo |
17 | 23 | Merged /trunk/extensions/ExtensionDistributor:r63902 |
Added: svn:ignore |
18 | 24 | + svn-invoker.conf |
Index: branches/REL1_16/phase3/RELEASE-NOTES |
— | — | @@ -10,40 +10,30 @@ |
11 | 11 | |
12 | 12 | Selected changes since MediaWiki 1.15 that may be of interest: |
13 | 13 | |
14 | | -* Watchlists now have RSS/Atom feeds. RSS feeds generally are now hidden, since |
15 | | - Atom is a better protocol and is supported by virtually all clients. |
| 14 | +* Watchlists now have RSS/Atom feeds. RSS feeds generally are now hidden, since Atom is a better protocol and is supported by virtually all clients. |
16 | 15 | |
17 | 16 | * It's now possible to block users from sending email via Special:Emailuser. |
18 | 17 | |
19 | | -* The maintenance script system was overhauled. Most maintenance scripts now |
20 | | - have a useful help page when you run them with --help. |
| 18 | +* The maintenance script system was overhauled. Most maintenance scripts now have a useful help page when you run them with --help. |
21 | 19 | |
22 | | -* AdminSettings.php is no longer required in order to run maintenance scripts. |
23 | | - You can just set $wgDBadminuser and $wgDBadminpassword in your |
24 | | - LocalSettings.php instead. |
| 20 | +* AdminSettings.php is no longer required in order to run maintenance scripts. You can just set $wgDBadminuser and $wgDBadminpassword in your LocalSettings.php instead. |
25 | 21 | |
26 | | -* The preferences system was overhauled. Preferences are stored in a more |
27 | | - compact format. Changes to site default preferences will automatically affect |
28 | | - all users who have not chosen a different preference. |
| 22 | +* The preferences system was overhauled. Preferences are stored in a more compact format. Changes to site default preferences will automatically affect all users who have not chosen a different preference. |
29 | 23 | |
30 | | -* Support for SQLite was improved. Some broken features were fixed, and it now |
31 | | - has an efficient full-text search. |
| 24 | +* Support for SQLite was improved. Some broken features were fixed, and it now has an efficient full-text search. |
32 | 25 | |
33 | | -* The user groups ACL system was improved by allowing rights to be revoked, |
34 | | - instead of just granted. |
| 26 | +* The user groups ACL system was improved by allowing rights to be revoked, instead of just granted. |
35 | 27 | |
36 | | -* A new localisation caching system was introduced, which will make MediaWiki |
37 | | - faster for almost everyone, especially when lots of extensions are enabled. |
| 28 | +* A new localisation caching system was introduced, which will make MediaWiki faster for almost everyone, especially when lots of extensions are enabled. |
38 | 29 | |
39 | | - By default, this new system makes a lot of database queries. If your database |
40 | | - is particularly slow, or if your system administrator limits your query |
41 | | - count, or if you want to squeeze as much performance as possible out of |
42 | | - Mediawiki, set $wgCacheDirectory to a writable path on the local filesystem. |
43 | | - Make sure you have the DBA extension for PHP installed, this will improve |
44 | | - performance further. |
| 30 | +By default, this new system makes a lot of database queries. If your database is particularly slow, or if your system administrator limits your query count, or if you want to squeeze as much performance as possible out of Mediawiki, set $wgCacheDirectory to a writable path on the local filesystem. Make sure you have the DBA extension for PHP installed, this will improve performance further. |
45 | 31 | |
46 | 32 | === Changes since 1.16 beta 1 === |
| 33 | + |
47 | 34 | * Fixed errors in maintenance/patchSql.php |
| 35 | +* (bug 19627) Fix regression from r57867 where HTMLForm would output |
| 36 | + <element classes="foo bar"> rather than <element class="foo bar"> |
| 37 | +* Fixed broken "-r" option to maintenance/lag.php |
48 | 38 | |
49 | 39 | === Configuration changes in 1.16 === |
50 | 40 | |
Property changes on: branches/REL1_16/phase3/maintenance/moveBatch.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
51 | 41 | Merged /trunk/phase3/maintenance/moveBatch.php:r63764,63897-63901 |
Index: branches/REL1_16/phase3/maintenance/dumpInterwiki.php |
— | — | @@ -14,7 +14,7 @@ |
15 | 15 | |
16 | 16 | $optionsWithArgs = array( "o" ); |
17 | 17 | require_once( dirname(__FILE__) . '/commandLine.inc' ); |
18 | | -require( "dumpInterwiki.inc" ); |
| 18 | +require( dirname(__FILE__)."/dumpInterwiki.inc" ); |
19 | 19 | chdir( $oldCwd ); |
20 | 20 | |
21 | 21 | # Output |
Property changes on: branches/REL1_16/phase3/maintenance/cleanupTable.inc |
___________________________________________________________________ |
Modified: svn:mergeinfo |
22 | 22 | Merged /trunk/phase3/maintenance/cleanupTable.inc:r63764,63897-63901 |
Index: branches/REL1_16/phase3/maintenance/namespaceDupes.php |
— | — | @@ -153,20 +153,12 @@ |
154 | 154 | * @param $suffix String Suffix to append to renamed articles |
155 | 155 | */ |
156 | 156 | private function checkNamespace( $ns, $name, $fix, $suffix = '' ) { |
157 | | - if( $ns == 0 ) { |
158 | | - $header = "Checking interwiki prefix: \"$name\"\n"; |
159 | | - } else { |
160 | | - $header = "Checking namespace $ns: \"$name\"\n"; |
161 | | - } |
162 | | - |
163 | 157 | $conflicts = $this->getConflicts( $ns, $name ); |
164 | 158 | $count = count( $conflicts ); |
165 | 159 | if( $count == 0 ) { |
166 | | - $this->output( $header . "... no conflict detected!\n" ); |
167 | 160 | return true; |
168 | 161 | } |
169 | 162 | |
170 | | - $this->output( $header . "... $count conflicts detected:\n" ); |
171 | 163 | $ok = true; |
172 | 164 | foreach( $conflicts as $row ) { |
173 | 165 | $resolvable = $this->reportConflict( $row, $suffix ); |
Index: branches/REL1_16/phase3/maintenance/lag.php |
— | — | @@ -18,21 +18,22 @@ |
19 | 19 | public function execute() { |
20 | 20 | if ( $this->hasOption( 'r' ) ) { |
21 | 21 | $lb = wfGetLB(); |
22 | | - $this->output( 'time ' ); |
23 | | - for( $i = 0; $i < $lb->getServerCount(); $i++ ) { |
| 22 | + echo 'time '; |
| 23 | + for( $i = 1; $i < $lb->getServerCount(); $i++ ) { |
24 | 24 | $hostname = $lb->getServerName( $i ); |
25 | | - $this->output( sprintf( "%-12s ", $hostname ) ); |
| 25 | + printf( "%-12s ", $hostname ); |
26 | 26 | } |
27 | | - $this->output( "\n" ); |
| 27 | + echo "\n"; |
28 | 28 | |
29 | 29 | while( 1 ) { |
| 30 | + $lb->clearLagTimeCache(); |
30 | 31 | $lags = $lb->getLagTimes(); |
31 | 32 | unset( $lags[0] ); |
32 | | - $this->output( gmdate( 'H:i:s' ) . ' ' ); |
| 33 | + echo gmdate( 'H:i:s' ) . ' '; |
33 | 34 | foreach( $lags as $i => $lag ) { |
34 | | - $this->output( sprintf( "%-12s " , $lag === false ? 'false' : $lag ) ); |
| 35 | + printf( "%-12s " , $lag === false ? 'false' : $lag ); |
35 | 36 | } |
36 | | - $this->output( "\n" ); |
| 37 | + echo "\n"; |
37 | 38 | sleep( 5 ); |
38 | 39 | } |
39 | 40 | } else { |
Index: branches/REL1_16/phase3/maintenance/storage/recompressTracked.php |
— | — | @@ -31,11 +31,13 @@ |
32 | 32 | var $copyOnly = false; |
33 | 33 | var $isChild = false; |
34 | 34 | var $slaveId = false; |
| 35 | + var $noCount = false; |
35 | 36 | var $debugLog, $infoLog, $criticalLog; |
36 | 37 | var $store; |
37 | 38 | |
38 | 39 | static $optionsWithArgs = array( 'procs', 'slave-id', 'debug-log', 'info-log', 'critical-log' ); |
39 | 40 | static $cmdLineOptionMap = array( |
| 41 | + 'no-count' => 'noCount', |
40 | 42 | 'procs' => 'numProcs', |
41 | 43 | 'copy-only' => 'copyOnly', |
42 | 44 | 'child' => 'isChild', |
— | — | @@ -259,12 +261,16 @@ |
260 | 262 | $dbr = wfGetDB( DB_SLAVE ); |
261 | 263 | $i = 0; |
262 | 264 | $startId = 0; |
263 | | - $numPages = $dbr->selectField( 'blob_tracking', |
264 | | - 'COUNT(DISTINCT bt_page)', |
265 | | - # A condition is required so that this query uses the index |
266 | | - array( 'bt_moved' => 0 ), |
267 | | - __METHOD__ |
268 | | - ); |
| 265 | + if ( $this->noCount ) { |
| 266 | + $numPages = '[unknown]'; |
| 267 | + } else { |
| 268 | + $numPages = $dbr->selectField( 'blob_tracking', |
| 269 | + 'COUNT(DISTINCT bt_page)', |
| 270 | + # A condition is required so that this query uses the index |
| 271 | + array( 'bt_moved' => 0 ), |
| 272 | + __METHOD__ |
| 273 | + ); |
| 274 | + } |
269 | 275 | if ( $this->copyOnly ) { |
270 | 276 | $this->info( "Copying pages..." ); |
271 | 277 | } else { |
— | — | @@ -310,7 +316,7 @@ |
311 | 317 | if ( $current == $end || $this->numBatches >= $this->reportingInterval ) { |
312 | 318 | $this->numBatches = 0; |
313 | 319 | $this->info( "$label: $current / $end" ); |
314 | | - wfWaitForSlaves( 5 ); |
| 320 | + $this->waitForSlaves(); |
315 | 321 | } |
316 | 322 | } |
317 | 323 | |
— | — | @@ -321,12 +327,16 @@ |
322 | 328 | $dbr = wfGetDB( DB_SLAVE ); |
323 | 329 | $startId = 0; |
324 | 330 | $i = 0; |
325 | | - $numOrphans = $dbr->selectField( 'blob_tracking', |
326 | | - 'COUNT(DISTINCT bt_text_id)', |
327 | | - array( 'bt_moved' => 0, 'bt_page' => 0 ), |
328 | | - __METHOD__ ); |
329 | | - if ( !$numOrphans ) { |
330 | | - return; |
| 331 | + if ( $this->noCount ) { |
| 332 | + $numOrphans = '[unknown]'; |
| 333 | + } else { |
| 334 | + $numOrphans = $dbr->selectField( 'blob_tracking', |
| 335 | + 'COUNT(DISTINCT bt_text_id)', |
| 336 | + array( 'bt_moved' => 0, 'bt_page' => 0 ), |
| 337 | + __METHOD__ ); |
| 338 | + if ( !$numOrphans ) { |
| 339 | + return; |
| 340 | + } |
331 | 341 | } |
332 | 342 | if ( $this->copyOnly ) { |
333 | 343 | $this->info( "Copying orphans..." ); |
— | — | @@ -404,7 +414,7 @@ |
405 | 415 | case 'quit': |
406 | 416 | return; |
407 | 417 | } |
408 | | - wfWaitForSlaves( 5 ); |
| 418 | + $this->waitForSlaves(); |
409 | 419 | } |
410 | 420 | } |
411 | 421 | |
— | — | @@ -469,6 +479,7 @@ |
470 | 480 | $this->debug( "$titleText: committing blob with " . $trx->getSize() . " items" ); |
471 | 481 | $trx->commit(); |
472 | 482 | $trx = new CgzCopyTransaction( $this, $this->pageBlobClass ); |
| 483 | + $this->waitForSlaves(); |
473 | 484 | } |
474 | 485 | } |
475 | 486 | $startId = $row->bt_text_id; |
— | — | @@ -545,6 +556,9 @@ |
546 | 557 | $this->debug( 'Incomplete: ' . $res->numRows() . ' rows' ); |
547 | 558 | foreach ( $res as $row ) { |
548 | 559 | $this->moveTextRow( $row->bt_text_id, $row->bt_new_url ); |
| 560 | + if ( $row->bt_text_id % 10 == 0 ) { |
| 561 | + $this->waitForSlaves(); |
| 562 | + } |
549 | 563 | } |
550 | 564 | $startId = $row->bt_text_id; |
551 | 565 | } |
— | — | @@ -604,11 +618,26 @@ |
605 | 619 | $this->debug( "[orphan]: committing blob with " . $trx->getSize() . " rows" ); |
606 | 620 | $trx->commit(); |
607 | 621 | $trx = new CgzCopyTransaction( $this, $this->orphanBlobClass ); |
| 622 | + $this->waitForSlaves(); |
608 | 623 | } |
609 | 624 | } |
610 | 625 | $this->debug( "[orphan]: committing blob with " . $trx->getSize() . " rows" ); |
611 | 626 | $trx->commit(); |
612 | 627 | } |
| 628 | + |
| 629 | + /** |
| 630 | + * Wait for slaves (quietly) |
| 631 | + */ |
| 632 | + function waitForSlaves() { |
| 633 | + $lb = wfGetLB(); |
| 634 | + while ( true ) { |
| 635 | + list( $host, $maxLag ) = $lb->getMaxLag(); |
| 636 | + if ( $maxLag < 2 ) { |
| 637 | + break; |
| 638 | + } |
| 639 | + sleep( 5 ); |
| 640 | + } |
| 641 | + } |
613 | 642 | } |
614 | 643 | |
615 | 644 | /** |
Index: branches/REL1_16/phase3/maintenance/storage/dumpRev.php |
— | — | @@ -62,7 +62,8 @@ |
63 | 63 | $text = gzinflate( $text ); |
64 | 64 | } |
65 | 65 | if ( in_array( 'object', $flags ) ) { |
66 | | - $text = unserialize( $text ); |
| 66 | + $obj = unserialize( $text ); |
| 67 | + $text = $obj->getText(); |
67 | 68 | } |
68 | 69 | |
69 | 70 | if ( is_object( $text ) ) { |
Property changes on: branches/REL1_16/phase3/maintenance/deleteSelfExternals.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
70 | 71 | Merged /trunk/phase3/maintenance/deleteSelfExternals.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/skins/common/jquery.min.js |
___________________________________________________________________ |
Modified: svn:mergeinfo |
71 | 72 | Merged /trunk/phase3/skins/common/jquery.min.js:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/skins/common/jquery.js |
___________________________________________________________________ |
Modified: svn:mergeinfo |
72 | 73 | Merged /trunk/phase3/skins/common/jquery.js:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/ChangesList.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
73 | 74 | Merged /trunk/phase3/includes/ChangesList.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/specials |
___________________________________________________________________ |
Modified: svn:mergeinfo |
74 | 75 | Merged /trunk/phase3/includes/specials:r63764,63897-63901 |
Index: branches/REL1_16/phase3/includes/HTMLForm.php |
— | — | @@ -572,7 +572,7 @@ |
573 | 573 | if( !$hasLeftColumn ) // Avoid strange spacing when no labels exist |
574 | 574 | $classes[] = 'mw-htmlform-nolabel'; |
575 | 575 | $attribs = array( |
576 | | - 'classes' => implode( ' ', $classes ), |
| 576 | + 'class' => implode( ' ', $classes ), |
577 | 577 | ); |
578 | 578 | if ( $sectionName ) |
579 | 579 | $attribs['id'] = Sanitizer::escapeId( "mw-htmlform-$sectionName" ); |
Property changes on: branches/REL1_16/phase3/includes/ConfEditor.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
580 | 580 | Merged /trunk/phase3/includes/ConfEditor.php:r63764,63897-63901 |
Index: branches/REL1_16/phase3/includes/db/LoadBalancer.php |
— | — | @@ -916,4 +916,11 @@ |
917 | 917 | $this->mLagTimes = $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki ); |
918 | 918 | return $this->mLagTimes; |
919 | 919 | } |
| 920 | + |
| 921 | + /** |
| 922 | + * Clear the cache for getLagTimes |
| 923 | + */ |
| 924 | + function clearLagTimeCache() { |
| 925 | + $this->mLagTimes = null; |
| 926 | + } |
920 | 927 | } |
Property changes on: branches/REL1_16/phase3/includes/api |
___________________________________________________________________ |
Modified: svn:mergeinfo |
921 | 928 | Merged /trunk/phase3/includes/api:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/HistoryPage.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
922 | 929 | Merged /trunk/phase3/includes/HistoryPage.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/LocalisationCache.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
923 | 930 | Merged /trunk/phase3/includes/LocalisationCache.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/json/Services_JSON.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
924 | 931 | Merged /trunk/phase3/includes/json/Services_JSON.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes/OutputPage.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
925 | 932 | Merged /trunk/phase3/includes/OutputPage.php:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3/includes |
___________________________________________________________________ |
Modified: svn:mergeinfo |
926 | 933 | Merged /trunk/phase3/includes:r63764,63897-63901 |
Property changes on: branches/REL1_16/phase3 |
___________________________________________________________________ |
Modified: svn:mergeinfo |
927 | 934 | Merged /trunk/phase3:r63764,63897-63901 |