phases: remove excessive optimization from newheads() (issue5939)...
phases: remove excessive optimization from newheads() (issue5939)
This function is intended to compute 'heads(::heads - roots::)', but it
failed because 'heads + parents(roots)' missed sibling branches of the roots.
That's why the public heads slipped down from D to B in the example added by
2a227782e754 "tests: add test demonstrating phase loss when cloning":
> E draft
> |\Z draft
> | Y draft
> D | public
> | X draft
> C/ public
> B public
> A public
where heads = {E, Z},
roots = {X}