Manual:PopulateParentId.php

Details
populateParentId.php is a maint-scripts>Special:MyLanguage/Manual:Maintenance scripts|maintenance script to make the required database updates for  to be of any use.

History
The first versions of populateParentId.php sorted the rev_parent_id linked list (at least with regard to those rows that had a null rev_parent_id) strictly by .

It assumed that the previous revision of the title was the original previous revision of the title when the edit was made.

This behavior [https://github.com/wikimedia/mediawiki-core/commit/41ea588beff62d9f900a1950f105ae4cb474956e was changed] by Aaron Schulz because it could result in loops.

The way it works now is that, after populateParentId.php selects the rows with null rev_parent_id, when it is dealing with a particular revision, first it checks for rows with the same  as that revision, that have with a smaller rev_id than that revision.

The highest ID "wins".

This avoids loops as the timestamp can only decrease and never loops with IDs (from parent to parent).

If there are no rows with the same timestamp, then it uses the highest ID with a lower timestamp.