00001 <?php
00009 require_once( 'commandLine.inc' );
00010
00011 $dbw = wfGetDB( DB_MASTER );
00012
00013 if ( count( $args ) == 0 ) {
00014 echo "Usage: php deleteRevision.php <revid> [<revid> ...]\n";
00015 exit(1);
00016 }
00017
00018 echo "Deleting revision(s) " . implode( ',', $args ) . " from ".wfWikiID()."...\n";
00019
00020 $affected = 0;
00021 foreach ( $args as $revID ) {
00022 $dbw->insertSelect( 'archive', array( 'page', 'revision' ),
00023 array(
00024 'ar_namespace' => 'page_namespace',
00025 'ar_title' => 'page_title',
00026 'ar_comment' => 'rev_comment',
00027 'ar_user' => 'rev_user',
00028 'ar_user_text' => 'rev_user_text',
00029 'ar_timestamp' => 'rev_timestamp',
00030 'ar_minor_edit' => 'rev_minor_edit',
00031 'ar_rev_id' => 'rev_id',
00032 'ar_text_id' => 'rev_text_id',
00033 ), array(
00034 'rev_id' => $revID,
00035 'page_id = rev_page'
00036 ), $fname
00037 );
00038 if ( !$dbw->affectedRows() ) {
00039 echo "Revision $revID not found\n";
00040 } else {
00041 $affected += $dbw->affectedRows();
00042 $dbw->delete( 'revision', array( 'rev_id' => $revID ) );
00043 }
00044 }
00045
00046 print "Deleted $affected revisions\n";
00047