diff options
author | DannyS712 <DannyS712.enwiki@gmail.com> | 2020-03-29 21:16:50 +0000 |
---|---|---|
committer | dannys712-main <dannys712.enwiki@gmail.com> | 2020-04-23 18:25:22 -0700 |
commit | c20306e64c9984a4bb1f924916a9ad8370fbe57b (patch) | |
tree | dd50af6a443904417d4cc6f09d00c0f986e15b2e /includes/MergeHistory.php | |
parent | eabf8afbd8d4b9b733be36e409a99496c2971d87 (diff) | |
download | mediawikicore-c20306e64c9984a4bb1f924916a9ad8370fbe57b.tar.gz mediawikicore-c20306e64c9984a4bb1f924916a9ad8370fbe57b.zip |
MergeHistory: Remove all uses of Revision objects
Bug: T246284
Change-Id: Ia978f72221385a8793d5ed4df7ecdcd98f56fc36
Diffstat (limited to 'includes/MergeHistory.php')
-rw-r--r-- | includes/MergeHistory.php | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/includes/MergeHistory.php b/includes/MergeHistory.php index e9851f7df299..7c5b0c54a945 100644 --- a/includes/MergeHistory.php +++ b/includes/MergeHistory.php @@ -21,6 +21,8 @@ * @file */ use MediaWiki\MediaWikiServices; +use MediaWiki\Revision\MutableRevisionRecord; +use MediaWiki\Revision\SlotRecord; use Wikimedia\Rdbms\IDatabase; use Wikimedia\Timestamp\TimestampException; @@ -291,6 +293,8 @@ class MergeHistory { [ 'rev_page' => $this->source->getArticleID() ], __METHOD__ ); + + $services = MediaWikiServices::getInstance(); if ( !$haveRevisions ) { if ( $reason ) { $reason = wfMessage( @@ -307,8 +311,7 @@ class MergeHistory { )->inContentLanguage()->text(); } - $redirectContent = MediaWikiServices::getInstance() - ->getContentHandlerFactory() + $redirectContent = $services->getContentHandlerFactory() ->getContentHandler( $this->source->getContentModel() ) ->makeRedirectContent( $this->dest, @@ -316,14 +319,23 @@ class MergeHistory { ); if ( $redirectContent ) { + $revStore = $services->getRevisionStore(); + $redirectComment = CommentStoreComment::newUnsavedComment( $reason ); + + $redirectRevRecord = new MutableRevisionRecord( $this->source ); + $redirectRevRecord->setContent( SlotRecord::MAIN, $redirectContent ); + $redirectRevRecord->setPageId( $this->source->getArticleID() ); + $redirectRevRecord->setComment( $redirectComment ); + $redirectRevRecord->setUser( $user ); + $redirectRevRecord->setTimestamp( wfTimestampNow() ); + + $insertedRevRecord = $revStore->insertRevisionOn( + $redirectRevRecord, + $this->dbw + ); + $redirectPage = WikiPage::factory( $this->source ); - $redirectRevision = new Revision( [ - 'title' => $this->source, - 'page' => $this->source->getArticleID(), - 'comment' => $reason, - 'content' => $redirectContent ] ); - $redirectRevision->insertOn( $this->dbw ); - $redirectPage->updateRevisionOn( $this->dbw, $redirectRevision ); + $redirectPage->updateRevisionOn( $this->dbw, $insertedRevRecord ); // Now, we record the link from the redirect to the new title. // It should have no other outgoing links... @@ -350,7 +362,7 @@ class MergeHistory { $this->dest->invalidateCache(); // update histories // Duplicate watchers of the old article to the new article on history merge - $store = MediaWikiServices::getInstance()->getWatchedItemStore(); + $store = $services->getWatchedItemStore(); $store->duplicateAllAssociatedEntries( $this->source, $this->dest ); // Update our logs |