Last modified: 2014-07-09 18:06:10 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T68155, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 66155 - Improve Special:MergeHistory so history merges from Special:Undelete can be disallowed
Improve Special:MergeHistory so history merges from Special:Undelete can be d...
Status: RESOLVED FIXED
Product: MediaWiki
Classification: Unclassified
Page editing (Other open bugs)
unspecified
All All
: Low enhancement with 1 vote (vote)
: 1.24.0 release
Assigned To: Aaron Schulz
: performance
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-06-05 00:23 UTC by Tim Starling
Modified: 2014-07-09 18:06 UTC (History)
9 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Tim Starling 2014-06-05 00:23:57 UTC
MergeHistory was enabled on three small projects, apparently without code review being done. We have not enabled MergeHistory on WMF projects in the past, for the following reasons:

* The write query changes an unlimited number of rows, and so can cause slave lag.
* The action is potentially extremely difficult to reverse, and so could cause a great deal of damage to a wiki if a sysop account were compromised.

Now, it is true that the delete/undelete method for merging history has the same two caveats, and so Special:MergeHistory is basically a nicer frontend for the same feature. But providing a simplified frontend for a feature is a kind of promotion, and it would be best if the backend were sensible before we did such promotion.

Note that the fact that undeletion can merge history was accidental. The feature was certainly not reviewed for the potential of malicious or accidental damage before it was deployed, because the first people to discover it were users, not developers.

I suggest:
* Deferring and throttling history merges, like what we do for user renames. Or alternatively, limiting history merges to pages with a few thousand revisions.
* Adding an "unmerge" feature, accessible from a link on the merge log line. Perhaps this could work by traversal of rev_parent_id starting from a rev_id stored in log_params.

Once this is done, the mergehistory right can be given to sysops by default in the MW core and on all WMF wikis, and then the misfeature allowing Special:Undelete to merge histories can be removed.
Comment 1 Brad Jorsch 2014-06-09 21:12:28 UTC
(In reply to Tim Starling from comment #0)
> Once this is done, the mergehistory right can be given to sysops by default
> in the MW core and on all WMF wikis, and then the misfeature allowing
> Special:Undelete to merge histories can be removed.

One other thing I've seen done is using Special:Undelete to unmerge histories, for example if someone comes along and replaces one article entirely with a different article.
Comment 2 Aaron Schulz 2014-06-10 21:00:41 UTC
The special page already enforces that only non-overlapping parts of the source page can be moved to the destination page. An "unmerge" link is included in the move log to reverse it.

What is indeed missing is a simple max-revision limit.
Comment 3 Gerrit Notification Bot 2014-06-10 21:39:35 UTC
Change 138735 had a related patch set uploaded by Aaron Schulz:
Added a 5000 revision limit to Special:MergeHistory

https://gerrit.wikimedia.org/r/138735
Comment 4 Gerrit Notification Bot 2014-06-20 18:21:19 UTC
Change 138735 merged by jenkins-bot:
Some improvements to Special:MergeHistory

https://gerrit.wikimedia.org/r/138735
Comment 5 Gerrit Notification Bot 2014-06-25 05:10:12 UTC
Change 141892 had a related patch set uploaded by Aaron Schulz:
Give "mergehistory" to sysops

https://gerrit.wikimedia.org/r/141892
Comment 6 Gerrit Notification Bot 2014-07-09 00:21:26 UTC
Change 141892 abandoned by Aaron Schulz:
Give "mergehistory" to sysops

https://gerrit.wikimedia.org/r/141892
Comment 7 Gerrit Notification Bot 2014-07-09 00:23:13 UTC
Change 144861 had a related patch set uploaded by Aaron Schulz:
Give "mergehistory" to sysops

https://gerrit.wikimedia.org/r/144861
Comment 8 Gerrit Notification Bot 2014-07-09 01:01:42 UTC
Change 144861 had a related patch set uploaded by Krinkle:
Give "mergehistory" to sysops

https://gerrit.wikimedia.org/r/144861
Comment 9 Gerrit Notification Bot 2014-07-09 17:41:45 UTC
Change 144861 merged by jenkins-bot:
Give "mergehistory" to sysops

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

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links