From: Brad Jorsch Date: Mon, 21 Aug 2017 16:54:54 +0000 (-0400) Subject: Delete maintenance/deleteRevision.php X-Git-Tag: 1.31.0-rc.0~2346^2 X-Git-Url: https://git.cyclocoop.org/%7B%7B%20url_for%28?a=commitdiff_plain;h=918e4c394c424a287f32853b2967b0c8d4dfc97c;p=lhc%2Fweb%2Fwiklou.git Delete maintenance/deleteRevision.php It hasn't been updated properly since 2006 so many fields aren't being copied to the archive table. Tim suggests it'd be best to just delete it and, if someone needs the ability to delete or revdel revisions from the command line, properly abstract out the deletion code instead of duplicating it. Change-Id: I400b8ac30b31802e7dd9f6e4d0ec10918eba0183 --- diff --git a/autoload.php b/autoload.php index d9e85bd39d..aeecac7fd0 100644 --- a/autoload.php +++ b/autoload.php @@ -367,7 +367,6 @@ $wgAutoloadLocalClasses = [ 'DeleteLogFormatter' => __DIR__ . '/includes/logging/DeleteLogFormatter.php', 'DeleteOldRevisions' => __DIR__ . '/maintenance/deleteOldRevisions.php', 'DeleteOrphanedRevisions' => __DIR__ . '/maintenance/deleteOrphanedRevisions.php', - 'DeleteRevision' => __DIR__ . '/maintenance/deleteRevision.php', 'DeleteSelfExternals' => __DIR__ . '/maintenance/deleteSelfExternals.php', 'DeletedContribsPager' => __DIR__ . '/includes/specials/pagers/DeletedContribsPager.php', 'DeletedContributionsPage' => __DIR__ . '/includes/specials/SpecialDeletedContributions.php', diff --git a/maintenance/deleteRevision.php b/maintenance/deleteRevision.php deleted file mode 100644 index 3abbdab99b..0000000000 --- a/maintenance/deleteRevision.php +++ /dev/null @@ -1,110 +0,0 @@ -addDescription( 'Delete one or more revisions by moving them to the archive table' ); - } - - public function execute() { - if ( count( $this->mArgs ) == 0 ) { - $this->error( "No revisions specified", true ); - } - - $this->output( "Deleting revision(s) " . implode( ',', $this->mArgs ) . - " from " . wfWikiID() . "...\n" ); - $dbw = $this->getDB( DB_MASTER ); - - $affected = 0; - foreach ( $this->mArgs as $revID ) { - $dbw->insertSelect( 'archive', [ 'page', 'revision' ], - [ - 'ar_namespace' => 'page_namespace', - 'ar_title' => 'page_title', - 'ar_page_id' => 'page_id', - 'ar_comment' => 'rev_comment', - 'ar_user' => 'rev_user', - 'ar_user_text' => 'rev_user_text', - 'ar_timestamp' => 'rev_timestamp', - 'ar_minor_edit' => 'rev_minor_edit', - 'ar_rev_id' => 'rev_id', - 'ar_text_id' => 'rev_text_id', - 'ar_deleted' => 'rev_deleted', - 'ar_len' => 'rev_len', - ], - [ - 'rev_id' => $revID, - 'page_id = rev_page' - ], - __METHOD__ - ); - if ( !$dbw->affectedRows() ) { - $this->output( "Revision $revID not found\n" ); - } else { - $affected += $dbw->affectedRows(); - $pageID = $dbw->selectField( - 'revision', - 'rev_page', - [ 'rev_id' => $revID ], - __METHOD__ - ); - $pageLatest = $dbw->selectField( - 'page', - 'page_latest', - [ 'page_id' => $pageID ], - __METHOD__ - ); - $dbw->delete( 'revision', [ 'rev_id' => $revID ] ); - if ( $pageLatest == $revID ) { - $newLatest = $dbw->selectField( - 'revision', - 'rev_id', - [ 'rev_page' => $pageID ], - __METHOD__, - [ 'ORDER BY' => 'rev_timestamp DESC' ] - ); - $dbw->update( - 'page', - [ 'page_latest' => $newLatest ], - [ 'page_id' => $pageID ], - __METHOD__ - ); - } - } - } - $this->output( "Deleted $affected revisions\n" ); - } -} - -$maintClass = "DeleteRevision"; -require_once RUN_MAINTENANCE_IF_MAIN;