tree 65b48af57f22d69270382c956ec21cb239529dde
parent 64bc332f68c2b0d3daa5bfeb3f2dd5078e189c8c
author iannucci <iannucci@chromium.org> 1492816502 -0700
committer Commit bot <commit-bot@chromium.org> 1492816502 -0700

[autoroller] All commits in updates(), only roll interesting ones.

Previously `updates` would only include the 'interesting' updates, which
meant that the new autoroller algorithm skips over chunks of the repo
history. If multiple repos have chunks of non-interesting history, the
autoroller can end up not proposing any good candidates.

This CL simplifies the repo interface by having `updates()` always
return the full list of commits, but adds a new field to the
CommitMetadata which indicates that a given commit was `interesting`.
This way the full history of every repo is available when picking
candidates (e.g. for `CommitList.advance_to`), but find_best_rev will
only consider rolling to interesting commits.

Originally landed: https://codereview.chromium.org/2833723003
And also: https://codereview.chromium.org/2829203002

R=dnj@chromium.org, phajdan.jr@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2832253002
