Derive lineage from a diff. Pure; entries are sorted by (first base key,
first head key) so the same comparison yields the same list.
Applied aliases are carried forward as lineage entries (see the provenance
contract on LineageEntry.reason): a diff run with a replayed map
classifies those pairs by key, so they never reach the content or successor
pass and would otherwise vanish from a --lineage-in x --lineage-out x
round trip, the file shrinking (or downgrading replaced to identity)
on every run.
Derive lineage from a diff. Pure; entries are sorted by (first base key, first head key) so the same comparison yields the same list.
Applied aliases are carried forward as lineage entries (see the provenance contract on LineageEntry.reason): a diff run with a replayed map classifies those pairs by key, so they never reach the content or successor pass and would otherwise vanish from a
--lineage-in x --lineage-out xround trip, the file shrinking (or downgradingreplacedtoidentity) on every run.