• Show log

    Commit

  • Hash : e7970576
    Author : Carlos Martín Nieto
    Date : 2014-10-08T15:52:11

    revwalk: mark uninteresting only up to the common ancestors
    
    This introduces a phase at the start of preparing a walk which pre-marks
    uninteresting commits, but only up to the common ancestors.
    
    We do this in a similar way to git, by walking down the history and
    marking (which is what we used to do), but we keep a time-sorted
    priority queue of commits and stop marking as soon as there are only
    uninteresting commits in this queue.
    
    This is a similar rule to the one used to find the merge-base. As we
    keep inserting commits regardless of the uninteresting bit, if there are
    only uninteresting commits in the queue, it means we've run out of
    interesting commits in our walk, so we can stop.
    
    The old mark_unintesting() logic is still in place, but that stops
    walking if it finds an already-uninteresting commit, so it will stop on
    the ones we've pre-marked; but keeping it allows us to also hide those
    that are hidden via the callback.