branchmap: update rev-branch-cache incrementally
Historically, the revision to branch mapping cache was updated on demand
and shared via bundle2 to avoid the cost of rebuilding on first use.
Use the new `register_changeset` callback and update rbc directly on
every change. Make the transfer of the bundle part redundant, but keep
it for the moment to avoid the test churn.
Over all, "hg unbundle" for large bundles is less than 1.8% slower for
different larger repositories and that seems to a reasonable trade off.
Differential Revision: https://phab.mercurial-scm.org/D9781
Issue351: mq: qrefresh can create extra revlog entry
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ hg qinit
$ echo b > b
$ hg ci -A -m foo
adding b
$ echo cc > b
$ hg qnew -f foo.diff
$ echo b > b
$ hg qrefresh
$ hg debugindex b
rev linkrev nodeid p1 p2
0 0 1e88685f5dde 000000000000 000000000000