HomePhabricator

(stable) Fix an issue where non-ID changeset state keys were used as changeset…

Description

(stable) Fix an issue where non-ID changeset state keys were used as changeset IDs

Summary:
Ref T13519. This is a little fuzzy, but I think the workflow here is:

  • View an intradiff, generating an ephemeral comparison changeset with no changeset ID. This produces a state key of "*".
  • Apply "hidden" state changes to the changeset.
  • View some other intradiff and/or diff view.
  • The code attempts to use "*" as a changset ID?

I'm not entirely sure this is accurate; this was observed in production and I couldn't get a clean reproduction case locally.

Optimistically, try making changeset IDs explicit rather than relying on state keys to be "usually changeset-ID-like".

Test Plan: Used "hidden" locally across multiple intradiffs, but I wasn't cleanly able to reproduce the initial issue.

Maniphest Tasks: T13519

Differential Revision: https://secure.phabricator.com/D21223