commit graph-based algorithms