Revert marking merged or abandoned changes in related changes
This incurs database lookups on every commit returned from the RevWalk
that does not have an open change associated with it. Typically this
is not very many, because the walk is limited to the current branch
tip.
However, there is very bad worst-case behavior in the case of
reviewing a merge that pulls in a long side branch whose merge base
with tip is far back in history:
M
|\
T \
| B1000
... ...
| B1
|/
O
In this case, we incur a thousand distinct database lookups to see
whether B1..B1000 have changes associated with them. In practice this
is a serious performance regression on some large repositories.
The original changes were a very useful bugfix, but it needs a more
efficient implementation.
This reverts the following commits:
d3b6e1d531f0bc6253c6d5ad6205ca1e72ef87f2
72d9193f626b89f379a5564aabcc1d416d933bdb
Change-Id: Ia3d4b200e677bca24fcd8fa9a4629bb406e90998
6 files changed