reachableroots: default to the C implementation
This patch is part of a series of patches to speed up the computation of
revset.reachableroots by introducing a C implementation. The main motivation is to
speed up smartlog on big repositories. At the end of the series, on our big
repositories the computation of reachableroots is 10-50x faster and smartlog on is
2x-5x faster.
Before this patch, reachableroots was computed in pure Python by default. This
patch makes the C implementation the default and provides a speedup for
reachableroots.
Issue1678: IndexError when pushing
setting up base repo
$ hg init a
$ cd a
$ touch a
$ hg ci -Am a
adding a
$ cd ..
cloning base repo
$ hg clone a b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd b
setting up cset to push
$ hg up null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ touch a
different msg so we get a clog new entry
$ hg ci -Am b
adding a
created new head
pushing
$ hg push -f ../a
pushing to ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files (+1 heads)
$ cd ..