Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5727
bisect: use array.array rather than lists for ancestor lists
This nearly doubles performance and cuts memory usage in half on large
bisections.
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5726
bisect: switch individual ancestor lists from dict to list
This saves quite a lot of memory and increases performance
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5725
bisect: turn ancestors into an array
This makes things faster and eliminates the separate stop hash
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5724
bisect: greatly simplify the ancestor accumulating loop
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5723
bisect: switch to rev-based calculation
- use revlog.parentrevs in search loops
- calculate stop directly in O(N) without reachable
- move badrev check into candidates
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5722
bisect: fix up node vs rev naming
Matt Mackall <mpm@selenic.com> [Thu, 27 Dec 2007 23:55:39 -0600] rev 5721
bisect: clarify some bisection code
- rename __ancestors... to candidates
- remove head parameter (it's always badrev)
- eliminate comprehensions to shrink parents
- num_ancestors -> n_child name fix
- clarify node selection