rust: Remove use of `py.eval()`
The previous Rust code allocated an intermediate `Vec`, converted that
to a Python list, then used `eval` to run Python code that converts that
list to a Python set.
rust-cpython exposes Rust bindings for Python sets, let’s use that instead
to construct a set directly.
Differential Revision: https://phab.mercurial-scm.org/D10328
== New Features ==
* `hg purge` is now a core command using `--confirm` by default.
* The `rev-branch-cache` is now updated incrementally whenever changesets
are added.
* The new options `experimental.bundlecompthreads` and
`experimental.bundlecompthreads.<engine>` can be used to instruct
the compression engines for bundle operations to use multiple threads
for compression. The default is single threaded operation. Currently
only supported for zstd.
== New Experimental Features ==
* There's a new `diff.merge` config option to show the changes
relative to an automerge for merge changesets. This makes it
easier to detect and review manual changes performed in merge
changesets. It is supported by `hg diff --change`, `hg log -p`
`hg incoming -p`, and `hg outgoing -p` so far.
== Bug Fixes ==
== Backwards Compatibility Changes ==
* In normal repositories, the first parent of a changeset is not null,
unless both parents are null (like the first changeset). Some legacy
repositories violate this condition. The revlog code will now
silentely swap the parents if this condition is tested. This can
change the output of `hg log` when explicitly asking for first or
second parent.
== Internal API Changes ==
* `changelog.branchinfo` is deprecated and will be removed after 5.8.
It is superseded by `changelogrevision.branchinfo`.
* Callbacks for revlog.addgroup and the changelog._nodeduplicatecallback hook
now get a revision number as argument instead of a node.
* revlog.addrevision returns the revision number instead of the node.
* `nodes.nullid` and related constants are being phased out as part of
the deprecation of SHA1. Repository instances and related classes
provide access via `nodeconstants` and in some cases `nullid` attributes.