Page MenuHomePhabricator

MergeHistory: timestamp-based midpoints are not sufficient
Open, Needs TriagePublic

Description

The MergeHistory module is capable of partial merging, where only revisions up to a specified timestamp get merged. But timestamps are not sufficient for this, because all timestamps in the database are rounded or truncated to whole seconds. Theoretically, this could bring problems:

  • more revisions than intended might get merged, if multiple revisions around the midpoint have the same timestamp
  • the history might not be linear after merging, if the newest revision of the source page is newer than the oldest revision of the target page, but after rounding/truncation they have the same timestamp

Why did you not use revision IDs for this? They are linear as well as timestamps, but guaranteed to be unique.

Event Timeline

Lahwaacz created this task.Dec 21 2017, 8:42 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptDec 21 2017, 8:42 PM

revision IDs are not linear. Imports from other wikis with older timestamps or restore from old revisions without a revision id (T20104#224748) would make this not linear