• Show log

    Commit

  • Hash : e51c8b99
    Author : Scott J. Goldman
    Date : 2012-12-09T21:24:47

    Fix mark_parents() to account for bad luck traversals
    
    If commit timestamps are off, we're more likely to hit a traversal
    where the first path ends up traversing past the root commit of the tree.
    If that happens, it's possible that the loop will complete before the second
    path marks some of those final parents. This fix keeps track of the root
    nodes that are encountered in the traversal, and verify that they are
    properly marked.
    
    In the best case, with accurate timestamps, the traversal will continue
    to terminate when all the commits are STALE (parents of a merge-base), as
    it did before. In the worst case, where one path makes a complete traversal
    past a root commit, we will continue the loop until the root commit itself
    is marked.