evolve: run in a single transaction
This speeds up `hg evolve --all` of a stack of 24 commits in the hg
repo from 11.5s to 3.7s (3x). As can be seen in the tests, it also
avoid some warnings about transiently unstable commits.
Test that share-clones use the cache in the original repository.
$ . $TESTDIR/testlib/common.sh
$ hg init share-base
$ cd share-base/
$ cat >> .hg/hgrc <<EOF
> [extensions]
> evolve=
> share=
> EOF
$ hg debugbuilddag .+3:branchpoint+4*branchpoint+2
$ cd ..
$ hg --config extensions.share= share -U share-base share-client
$ cd share-client
$ hg debugupdatecache
$ test -d .hg/cache
[1]
$ test -d ../share-base/.hg/cache