SelectiveDelete and RevisionDelete Similarities and Differences

SelectiveDelete is a fictional user ability that allows users with the ability to delete pages to selectively delete revisions from the page history. It is basically the same as deleting a page and then restoring the selective revisions. My inspiration for the fictional user ability started between August and October 2014 when I discovered that Administrators were unable to perform selective deletions using the (delete) permission. They could only perform selective restorations using the (undelete) permission, which also requires the (deletedhistory) permission. Sometime in 2016 I discovered the (deleterevision) permission which allows users to show and hide the contents of specific revisions, the edit summaries of the revisions, the names of the users/IP addresses that made the edits, or any combination of those three. Though unlike the (delete) and (undelete) permissions, I did not have access to (deleterevision) on any of the sites that I was active on at the time.

I initially believed that the (deleterevision) permission was a combination of the (delete) and (undelete) permissions that only focussed on deleting and undeleting one revision at a time. It wasn't until 2018 that I truly understood that (deleterevision) was completely unrelated to the page deletion and page restoration systems that (delete) and (undelete) are part of, respectively. And that it was actually the core permission of an entirely unrelated system, the revision deletion system.

It was around that time where I decided to publish the concept for my own fictitious permission which was titled MultipleRevisionDelete and later SelectiveDelete. The fictional (selectivedelete) permission would allow users to selectively delete revisions by the ?action=delete parameter, but only if they already had the (delete) permission. All of the selected revisions in the page would be moved from the revision table to the archive table.

SelectiveDelete and RevisionDelete Similarities and Differences
When I shared my concept to many users on Fandom and, it is not surprising that several of them said that the fictional SelectiveDelete ability sounded like the RevisionDelete ability.

The two permissions however despite sharing the same overall purpose would be quite different from one another. Below is a list of all the similarities and differences between the two permissions, what one can do that the other can't do and vice versa.

Pages
SelectiveDelete requires the (delete) permission to use or the user will get a permission error saying that they don't have permission to delete pages.

RevisionDelete can be used to hide revisions on pages even if the user doesn't have the (delete) permission.

Pages with large histories
SelectiveDelete requires the (delete) and (bigdelete) permissions to delete revisions on pages with large histories or the user will get a permission error saying that they don't have permission to delete pages with large histories.

RevisionDelete can be used to hide revisions on pages with large histories even if the user doesn't have the (delete) and (bigdelete) permissions.

Semi-protected Pages
SelectiveDelete requires the (delete) and (editsemiprotected) permissions to delete revisions on semi-protected pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on pages that are semi-protected even if the user doesn't have the (delete) and (editsemiprotected) permissions.

Protected Pages
SelectiveDelete requires the (delete) and (editprotected) permissions to delete revisions on fully protected pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on pages that are fully protected even if the user doesn't have the (delete) and (editprotected) permissions.

Cascade-Protected Pages
SelectiveDelete requires the (delete) and (protect) permissions to delete revisions on cascade-protected pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on pages that are cascade-protected even if the user doesn't have the (delete) and (protect) permissions.

Whitelisted System Messages
SelectiveDelete requires the (delete) and (editinterface) permissions to delete revisions on whitelisted system messages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on whitelisted system messages even if the user doesn't have the (delete) and (editinterface) permissions.

System Messages
SelectiveDelete requires the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions to delete revisions on all system messages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it

RevisionDelete can be used to hide revisions on all system messages even if the user doesn't have the (delete), (editinterface), (deleteinterfacetrusted), and (editinterfacetrusted) permissions.

CSS Pages
SelectiveDelete requires the (delete), (editinterface), and (editsitecss) permissions to delete revisions on CSS pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on CSS pages even if the user doesn't have the (delete), (editinterface), and (editsitecss) permissions.

JavaScript Pages
SelectiveDelete requires the (delete), (editinterface), and (editsitejs) permissions to delete revisions on JavaScript pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on JavaScript pages even if the user doesn't have the (delete), (editinterface), and (editsitejs) permissions.

JSON Pages
SelectiveDelete requires the (delete), (editinterface), (editsitejson), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), (editsitejson), and (editinterfacetrusted) permissions to delete revisions on JavaScript Object Notation pages, or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on JavaScript Object Notation pages even if the user doesn't have the (delete), (editinterface), (editsitejson), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), (editsitejson), and (editinterfacetrusted) permissions.

FandomMobile CSS Pages
SelectiveDelete requires the (delete), (editinterface), (editsitecss), and (edit-fandommobile-customizations) permissions to delete revisions on FandomMobile CSS pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on FandomMobile CSS pages even if the user doesn't have the (delete), (editinterface), (editsitecss), and (edit-fandommobile-customizations) permissions.

FandomMobile JavaScript Pages
SelectiveDelete requires the (delete), (editinterface), (editsitejs), and (edit-fandommobile-customizations) permissions to delete revisions on FandomMobile JavaScript pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on FandomMobile JavaScript pages even if the user doesn't have the (delete), (editinterface), (editsitejs), and (edit-fandommobile-customizations) permissions.

Blog Pages
SelectiveDelete requires the (delete) and (blog-articles-edit) permissions, or the (delete) and (blog-articles-delete) permissions to delete revisions on blog articles or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on blog articles even if the user doesn't have the (delete) and (blog-articles-edit) permissions, or the (delete) and (blog-articles-delete) permissions.

Archived Forum Pages
SelectiveDelete requires the (delete) and (forumoldedit) permissions to delete forum pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on forum pages even if the user doesn't have the (delete) and (forumoldedit) permissions.

User CSS Pages
SelectiveDelete requires the (delete) and (editusercss) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions to delete user CSS pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on user CSS pages even if the user doesn't have the (delete) and (editusercss) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions

User JavaScript Pages
SelectiveDelete requires the (delete) and (edituserjs) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions to delete user JavaScript pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on user JavaScript pages even if the user doesn't have the (delete) and (edituserjs) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions

User JSON Pages
SelectiveDelete requires the (delete) and (edituserjson) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions to delete user JavaScript Object Notation pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on user JavaScript Object Notation pages even if the user doesn't have the (delete) and (edituserjson) permissions, the (delete), (editinterface), and (deleteinterfacetrusted) permissions, or the (delete), (editinterface), and (editinterfacetrusted) permissions

Gadget Pages
SelectiveDelete requires the (delete) and (gadgets-edit) permissions to delete Gadget pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on Gadget pages even if the user doesn't have the (delete) and (gadgets-edit) permissions.

Gadget definition Pages
SelectiveDelete requires the (delete) and (gadgets-definition-edit) permissions to delete Gadget definition pages or the user will get a permission error saying that they don't have permission to delete the page because they don't have permission to edit it.

RevisionDelete can be used to hide revisions on Gadget definition pages even if the user doesn't have the (delete) and (gadgets-definition-edit) permissions.

Current Revisions
SelectiveDelete can be used to delete the current revision, as long as none of the preceding revisions have been partially hidden.

RevisionDelete cannot be used to hide the current revision.

Partially Deleting Revisions
Revisions must be fully deleted when using SelectiveDelete.

Revisions may be partially hidden when using RevisionDelete (e.g. edit summary but not username)

Public View
SelectiveDelete removes edits from public view.

RevisionDelete does not remove edits from public view.

CC-BY-SA Licence
SelectiveDelete may cause prior edits to appear as another user's edit. Selective deletion should therefore be avoided if it puts the CC-BY-SA licence at risk.

RevisionDelete does not cause prior edits to appear as another user's edit. So attribution and history may be less affected.

History and Deleted History
An article's history is split between two separate pages (history and deleted history) so deleted edits do not appear on the public page when using SelectiveDelete.

An article's history is not split between two separate pages (history and deleted history) so all edits are visible on the one public page when using RevisionDelete.

Deletion Events
Non-administrators cannot see when a deletion via SelectiveDelete has taken place, if they cannot see the deleted material.

Non-administrators can see when a deletion via RevisionDelete has taken place, even if they cannot see the deleted material.

Fully Deleting Pages
There is no need to delete the article to delete selective revisions when using SelectiveDelete.

There is no need to delete the article to hide selective revisions when using RevisionDelete.

Deletion and Partial Undeletion
SelectiveDelete does not require full deletion and partial undeletion. So existing deleted revisions are not at risk of accidental restoration, and the article does not appear as "deleted" during the process.

RevisionDelete does not require full deletion and partial undeletion. So existing deleted revisions are not at risk of accidental restoration, and the article does not appear as "deleted" during the process.