Pmlineditor has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/322636

Change subject: Add new configuration setting for MergeHistory limit
......................................................................

Add new configuration setting for MergeHistory limit

Added a new configuration variable, $wgMergeHistoryRevisionsLimit,
to replace hardcoded limit of 5000 revisions for MergeHistory.

Bug: T89551
Change-Id: I80b6b022bad186f10f787d4ae7a25dfef3aa203b
---
M includes/DefaultSettings.php
M includes/MergeHistory.php
M languages/i18n/qqq.json
3 files changed, 13 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/36/322636/1

diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php
index 32717f1..fcaee43 100644
--- a/includes/DefaultSettings.php
+++ b/includes/DefaultSettings.php
@@ -5428,6 +5428,13 @@
 $wgDeleteRevisionsLimit = 0;
 
 /**
+ * The maximum number of revisions a page can have that can
+ * be merged at once using MergeHistory
+ * Set to 0 to disable the limit.
+ */
+$wgMergeHistoryRevisionsLimit = 5000;
+
+/**
  * The maximum number of edits a user can have and
  * can still be hidden by users with the hideuser permission.
  * This is limited for performance reason.
diff --git a/includes/MergeHistory.php b/includes/MergeHistory.php
index e57f880..5570532 100644
--- a/includes/MergeHistory.php
+++ b/includes/MergeHistory.php
@@ -33,9 +33,6 @@
  */
 class MergeHistory {
 
-       /** @const int Maximum number of revisions that can be merged at once */
-       const REVISION_LIMIT = 5000;
-
        /** @var Title Page from which history will be merged */
        protected $source;
 
@@ -133,10 +130,11 @@
         * @return int
         */
        public function getRevisionCount() {
+               global $wgMergeHistoryRevisionsLimit;
                $count = $this->dbw->selectRowCount( 'revision', '1',
                        [ 'rev_page' => $this->source->getArticleID(), 
$this->timeWhere ],
                        __METHOD__,
-                       [ 'LIMIT' => self::REVISION_LIMIT + 1 ]
+                       [ 'LIMIT' => $wgMergeHistoryRevisionsLimit + 1 ]
                );
 
                return $count;
@@ -196,6 +194,7 @@
         * @return Status
         */
        public function isValidMerge() {
+               global $wgMergeHistoryRevisionsLimit;
                $status = new Status();
 
                // If either article ID is 0, then revisions cannot be reliably 
selected
@@ -222,8 +221,8 @@
                }
 
                // Check that there are not too many revisions to move
-               if ( $this->timestampLimit && $this->getRevisionCount() > 
self::REVISION_LIMIT ) {
-                       $status->fatal( 'mergehistory-fail-toobig', 
Message::numParam( self::REVISION_LIMIT ) );
+               if ( $this->timestampLimit && $wgMergeHistoryRevisionsLimit && 
$this->getRevisionCount() > $wgMergeHistoryRevisionsLimit ) {
+                       $status->fatal( 'mergehistory-fail-toobig', 
Message::numParam( $wgMergeHistoryRevisionsLimit ) );
                }
 
                return $status;
diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json
index 07b55f9..34457ff 100644
--- a/languages/i18n/qqq.json
+++ b/languages/i18n/qqq.json
@@ -1121,7 +1121,7 @@
        "mergehistory-fail-permission": "Used as error message in 
[[Special:MergeHistory]] API.",
        "mergehistory-fail-self-merge": "Used as error message in 
[[Special:MergeHistory]] API.",
        "mergehistory-fail-timestamps-overlap": "Used as error message in 
[[Special:MergeHistory]] API.",
-       "mergehistory-fail-toobig": "Used as error message in 
[[Special:MergeHistory]] and API.\n* $1 - maximum allowed number of revisions 
that can be moved",
+       "mergehistory-fail-toobig": "Used as error message in 
[[Special:MergeHistory]] and API.\n* $1 - maximum allowed number of revisions 
that can be moved (Value of $wgMergeHistoryRevisionsLimit)",
        "mergehistory-warning-redirect-not-created": "Used as warning message 
in [[Special:MergeHistory]] API.",
        "mergehistory-no-source": "Used as error message in 
[[Special:MergeHistory]].\n* $1 - source page title\nSee also:\n* 
{{msg-mw|mergehistory-invalid-source}}\n* 
{{msg-mw|mergehistory-invalid-destination}}\n* 
{{msg-mw|mergehistory-no-destination}}\n* 
{{msg-mw|mergehistory-same-destination}}",
        "mergehistory-no-destination": "Used as error message in 
[[Special:MergeHistory]].\n* $1 - destination page title\nSee also:\n* 
{{msg-mw|mergehistory-invalid-source}}\n* {{msg-mw|mergehistory-no-source}}\n* 
{{msg-mw|mergehistory-invalid-destination}}\n* 
{{msg-mw|mergehistory-same-destination}}",

-- 
To view, visit https://gerrit.wikimedia.org/r/322636
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I80b6b022bad186f10f787d4ae7a25dfef3aa203b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Pmlineditor <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to