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.