From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- maintenance/fixTimestamps.php | 51 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 26 deletions(-) (limited to 'maintenance/fixTimestamps.php') diff --git a/maintenance/fixTimestamps.php b/maintenance/fixTimestamps.php index ea102fb8..3e3bd0a5 100644 --- a/maintenance/fixTimestamps.php +++ b/maintenance/fixTimestamps.php @@ -1,9 +1,9 @@ getArg(0) * 3600; - $start = $this->getArg(1); - $end = $this->getArg(2); + $offset = $this->getArg( 0 ) * 3600; + $start = $this->getArg( 1 ); + $end = $this->getArg( 2 ); $grace = 60; // maximum normal clock offset - + # Find bounding revision IDs $dbw = wfGetDB( DB_MASTER ); $revisionTable = $dbw->tableName( 'revision' ); $res = $dbw->query( "SELECT MIN(rev_id) as minrev, MAX(rev_id) as maxrev FROM $revisionTable " . "WHERE rev_timestamp BETWEEN '{$start}' AND '{$end}'", __METHOD__ ); $row = $dbw->fetchObject( $res ); - + if ( is_null( $row->minrev ) ) { $this->error( "No revisions in search period.", true ); } - + $minRev = $row->minrev; $maxRev = $row->maxrev; - + # Select all timestamps and IDs $sql = "SELECT rev_id, rev_timestamp FROM $revisionTable " . "WHERE rev_id BETWEEN $minRev AND $maxRev"; @@ -64,13 +64,13 @@ class FixTimestamps extends Maintenance { } else { $expectedSign = 1; } - + $res = $dbw->query( $sql, __METHOD__ ); - + $lastNormal = 0; $badRevs = array(); $numGoodRevs = 0; - + foreach ( $res as $row ) { $timestamp = wfTimestamp( TS_UNIX, $row->rev_timestamp ); $delta = $timestamp - $lastNormal; @@ -89,26 +89,25 @@ class FixTimestamps extends Maintenance { $badRevs[] = $row->rev_id; } } - $dbw->freeResult( $res ); - + $numBadRevs = count( $badRevs ); if ( $numBadRevs > $numGoodRevs ) { - $this->error( + $this->error( "The majority of revisions in the search interval are marked as bad. - Are you sure the offset ($offset) has the right sign? Positive means the clock + Are you sure the offset ($offset) has the right sign? Positive means the clock was incorrectly set forward, negative means the clock was incorrectly set back. - If the offset is right, then increase the search interval until there are enough + If the offset is right, then increase the search interval until there are enough good revisions to provide a majority reference.", true ); } elseif ( $numBadRevs == 0 ) { $this->output( "No bad revisions found.\n" ); - exit(0); + exit( 0 ); } - - $this->output( sprintf( "Fixing %d revisions (%.2f%% of revisions in search interval)\n", - $numBadRevs, $numBadRevs / ($numGoodRevs + $numBadRevs) * 100 ) ); - + + $this->output( sprintf( "Fixing %d revisions (%.2f%% of revisions in search interval)\n", + $numBadRevs, $numBadRevs / ( $numGoodRevs + $numBadRevs ) * 100 ) ); + $fixup = -$offset; $sql = "UPDATE $revisionTable " . "SET rev_timestamp=DATE_FORMAT(DATE_ADD(rev_timestamp, INTERVAL $fixup SECOND), '%Y%m%d%H%i%s') " . @@ -119,4 +118,4 @@ class FixTimestamps extends Maintenance { } $maintClass = "FixTimestamps"; -require_once( DO_MAINTENANCE ); +require_once( RUN_MAINTENANCE_IF_MAIN ); -- cgit v1.2.3-54-g00ecf