From 918e4c394c424a287f32853b2967b0c8d4dfc97c Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Mon, 21 Aug 2017 12:54:54 -0400 Subject: [PATCH] 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 --- autoload.php | 1 - maintenance/deleteRevision.php | 110 --------------------------------- 2 files changed, 111 deletions(-) delete mode 100644 maintenance/deleteRevision.php 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; -- 2.20.1