aboutsummaryrefslogtreecommitdiffstats
path: root/includes/MergeHistory.php
diff options
context:
space:
mode:
authorDannyS712 <DannyS712.enwiki@gmail.com>2020-03-29 21:16:50 +0000
committerdannys712-main <dannys712.enwiki@gmail.com>2020-04-23 18:25:22 -0700
commitc20306e64c9984a4bb1f924916a9ad8370fbe57b (patch)
treedd50af6a443904417d4cc6f09d00c0f986e15b2e /includes/MergeHistory.php
parenteabf8afbd8d4b9b733be36e409a99496c2971d87 (diff)
downloadmediawikicore-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.php32
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