Staging instance, all changes can be removed at any time
FindEarliestRevision and TopoSort are rewritten in Rust.