phases: stop using `repo.set` in `remotephasessummary`
The `repository.set` create changectx on the fly, an expensive operation. Using
`repo.revs` and a direct rev-num → node-id translation will be significantly
faster.
This is especially true as we prepare ourself to no longer do the rev-num →
node-id transalation there.
The speedup is a bit lost in the overall noisyness of the slow phase discovery algorithm, but it save a small amount of time in my benchmark.
== New Features ==
* `hg mv -A` can now be used with `--at-rev`. It behaves just like
`hg cp -A --at-rev`, i.e. it marks the destination as a copy of the
source whether or not the source still exists (but the source must
exist in the parent revision).
* New revset predicate `diffcontains(pattern)` for filtering revisions
in the same way as `hg grep --diff pattern`.
* The memory footprint per changeset and per file during pull/unbundle
operations has been significantly reduced.
== New Experimental Features ==
== Bug Fixes ==
== Backwards Compatibility Changes ==
== Internal API Changes ==
* `merge.update()` is now private (renamed to `_update()`). Hopefully
the higher-level functions available in the same module cover your
use cases.
* `phases.registernew` now takes a set of revisions instead of a list
of nodes. `phases.advanceboundary` takes an optional set of revisions
in addition to the list of nodes. The corresponeding members of the
`phasecache` class follow this change.
* The `addgroup` member of `revlog` classes no longer keeps a list of
all found nodes. It now returns True iff a node was found in the group.
An optional callback for duplicated nodes can be used by callers to keep
track of all nodes themselve.
* The `_chaininfocache` of `revlog` classes has been changed from a dict
to a LRU cache.