New Evolve extension release: version 11.1.10

2025-11-26

We released a new version of the evolve extension: 11.1.10.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is the compatibility with the upcoming Mercurial 7.2.

Evolve: 11.1.10

  • compatibility with Mercurial 7.2

  • docs: update issue tracker links

  • tests: more compatibility with non-GNU tools

topic

  • compatibility with Mercurial 7.2

  • topic: add _verifyall() call before updating _topiccache on hg <= 6.7

  • topic: properly add branchmaptns method to wirepeer, making topic namespaces work correctly during exchange via ssh or http(s)

New Evolve extension release: version 11.1.9

2025-07-25

We released a new version of the evolve extension: 11.1.9.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is the compatibility with Mercurial 7.1rc0 and the upcoming Mercurial 7.1.

Thanks to all the people involved:

Evolve: 11.1.9

  • compatibility with Mercurial 7.1

Topic: 1.1.9

  • compatibility with Mercurial 7.1

New Evolve extension release: version 11.1.8

2025-03-11

We released a new version of the evolve extension: 11.1.8.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is the compatibility with Mercurial 7.0rc0 and the upcoming Mercurial 7.0. The files on PyPI were also produced by the newest available build frontend and they now include a binary distribution (wheel). We didn't provide wheels for hg-evolve before, so if there any issues, please let us know.

Thanks to all the people involved:

Evolve: 11.1.8

  • compatibility with Mercurial 7.0

Topic: 1.1.8

  • compatibility with Mercurial 7.0

New Evolve extension release: version 11.1.7

2025-02-06

We released a new version of the evolve extension: 11.1.7.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a special bugfix release that includes one feature from default branch. Now obslog --patch can show patches for changesets that were rebased. Since this feature uses in-memory rebase, it requires Mercurial 5.6 or newer, where it is fully supported. Also a version check that was failing on Mercurial 6.8 was fixed (minor releases like 6.8.1 weren't affected).

Thanks to all the people involved:

Evolve: 11.1.7.post1

  • no changes from 11.1.7, only upgraded packaging

Evolve: 11.1.7

  • evolve: fix version check from 972d98ce3552 for hg 6.8 (issue6958)

  • obslog: also display patch for rebased changesets (requires Mercurial 5.6 or newer for in-memory rebase support)

New Evolve extension release: version 11.1.6

2024-11-27

We released a new version of the evolve extension: 11.1.6.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The notable changes are: evolve won't consider all parts of a split content-divergent if only some of them are; obshashrange cache will simply reset if there are too many affected ranges instead of precision-deleting them from the database, this improves overall performance; topic stack now provides any suitable successor for an obsolete stack base instead of raising an error, this prevents errors in commands like hg topics --age in certain cases.

Thanks to all the people involved:

Evolve: 11.1.6

  • evolve: unrelated parts of splits are no longer considered content-divergent, this is a port of an upstream patch included in hg 6.8.2

  • obshashrange: avoid executing too many DELETE requests at once

  • obshashrange: reset the cache if too many ranges need to be deleted

Topic 1.1.6

  • stack: when stack base is obsolete, pick any successor, even if at random

New Evolve extension release: version 11.1.5

2024-10-26

We released a new version of the evolve extension: 11.1.5.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is the compatibility with the upcoming Mercurial 6.9. Also the cleanup step of hg evolve --abort tries to be more careful when accessing revisions that might not exist. Documentation and tests were updated to be closer to the modern Python packaging standards.

Thanks to all the people involved:

Evolve: 11.1.5

  • compatibility with Mercurial 6.9

  • evolve: check that the evolved revisions are indeed in the repo during abort, fixes an issue when trying to access them during cleanup step

  • docs: update installation instructions due to PEP 668

  • docs: minor edits and fixes in evolve and topic tutorials

  • tests: more tests related to Python packaging

Topic 1.1.5

  • compatibility with Mercurial 6.9

New Evolve extension release: version 11.1.4

2024-06-28

We released a new version of the evolve extension: 11.1.4.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The only change is compatibility with the soon-to-be-released Mercurial 6.8.

Thanks to all the people involved:

Evolve: 11.1.4

  • compatibility with Mercurial 6.8

Topic 1.1.4

  • compatibility with Mercurial 6.8

New Evolve extension release: version 11.1.3

2024-04-12

We released a new version of the evolve extension: 11.1.3.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable changes are the new debug command (and a related server-side safeguard) to prevent issues with unexpected topic namespaces. Now server operators can forbid pushes that contain commits that have any topic namespace set, and if there are such commits in a repo already, they can have their metadata rewritten to exclude topic-namespace field using a debug command. This way some users can start using topic namespaces, and others can avoid any interactions with this new feature until it's more complete and less experimental.

Thanks to all the people involved:

Evolve: 11.1.3

  • no changes, just a version bump

Topic 1.1.3

  • topic namespaces: add hg debug-default-topic-namespace command that can list changesets with problematic topic namespaces (i.e. "none" and "default") and rewrite them

  • topic namespaces: new experimental.tns-reject-push config to make servers reject pushes that contain changesets with any topic namespace in commit extras

  • topic namespaces: slightly change .hg/topic-namespace cleanup code to be executed on acquiring a wlock instead of on reading .hg/topic-namespace

New Evolve extension release: version 11.1.2

2024-03-03

We released a new version of the evolve extension: 11.1.2.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is the compatibility with the upcoming Mercurial 6.7. Also, a bug was fixed that made hg backout to fail in commitstatus function (which runs after the job is already done) in Mercurial versions 5.7 through 6.5 with topic extension enabled.

Thanks to all the people involved:

Evolve: 11.1.2

  • compatibility with Mercurial 6.7

  • evolve: use functions from topic extension to set current topic and tns

Topic 1.1.2

  • compatibility with Mercurial 6.7

  • topic: handle commitstatus() with opts=None for hg <= 6.5 too

New Evolve extension release: version 11.1.1

2024-02-05

We released a new version of the evolve extension: 11.1.1.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. Bugs related to wire protocol and topic namespaces were fixed: hg incoming works correctly again (see issue6856), pushing via ssh shouldn't produce any errors related to tns_heads method on the peer. hg pick was made to always use current topic for the resulting changesets (see issue6406), including when users don't have any set (in which case the resulting changeset will not have any topic, regardless of what the original changeset had). Default topic namespace value (which at first was "default", but in 1.1.0 it was changed to "none") won't get stored on disk and will actively be removed now (topic extension will do it for at least a couple of releases) to avoid any confusion when using different versions of topic extension on the same repo. There were some improvements in handling topics and topic namespaces that aren't ASCII-only. The evolve and topic extensions were also marked as compatible with Mercurial 6.6, although no code changes were required.

Thanks to all the people involved:

Evolve: 11.1.1

  • compatibility with Mercurial 6.6

  • evolve: fix typo in "mercurial" and let hasmemmergestate be True sometimes

  • uncommit: set uncommit_source extra consistently in interactive mode

Topic 1.1.1

  • compatibility with Mercurial 6.6

  • topic: properly decode topic and topic namespace after reading from disk

  • topic: wrap makebundlerepository() to wrap bundlerepository class (issue6856)

  • topic: internal config option to fix hg pick behavior (issue6406)

  • topic: use the appropriate functions to change topic and topic namespace on working directory update and don't write empty/default values to disk

  • topic namespaces: check that user-provided topic namespace names are human-readable like topics

  • topic namespaces: add tns_heads method to wirepeer directly instead of using a subclass

  • topic namespaces: remove .hg/topic-namespace file if it has the default value ("none")

New Evolve extension release: version 11.1.0

2023-10-23

We released a new version of the evolve extension: 11.1.0.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a feature release. The most notable change is: the next step in implementing topic namespaces, a feature designed to help users organize their topics and at the same time separate their work during development. For more technical context see TopicPlan#sub branches, namespacing and representation. UI work is still underway, but we plan the next feature release to contain a lot of improvements in this area. Other notable changes in this release: hg pick command will now update commit hashes in descriptions if they refer to now-obsolete commits, certain commit extras are now preserved on relocating a commit (and there is a mechanism to modify the list of extras to preserve), evolve.serveronly and serverminitopic extensions were removed (after being deprecated in the previous feature release); evolve and topic extensions replace these extensions for both clients and servers. Also compatibility with Mercurial 4.8 (which was released in 2018, and is the latest available in Debian Buster) was dropped.

Thanks to all the people involved:

Evolve: 11.1.0

  • remove deprecated evolve.serveronly extension, evolve extension is recommended for all users, clients and servers

  • evolve: don't warn about topics while resolving public content-divergence

  • evolve: add obsdiff as alternative for odiff

  • evolve: retain certain commit extras when relocating a commit

  • pick: update commit message hashes like other rewrite commands

  • evolve, pullbundle: drop compatibility with Mercurial 4.8

Topic 1.1.0

  • remove deprecated serverminitopic extension, topic extension is recommended for all users, clients and servers

  • topic namespaces: add experimental.tns-allow-rewrite config option to check topic namespace before rewriting changesets (known limitations: does not prevent rebase and histedit from editing changesets outside of configured topic namespaces on Mercurial 5.2 and older)

  • topic namespaces: add experimental.tns-default-pull-namespaces config option to pull only certain changesets by default

  • topic namespaces: teach hg import and hg export to handle topic namespaces

  • topic namespaces: invalidate topic namespace cache in repo.invalidatecaches()

  • topic: only set topic on workingcommitctx if it doesn't already have one, making hg import always prioritize patch metadata

  • topic: properly process revbranchcache before sending it to peers (issue6841)

  • drop compatibility with Mercurial 4.8

Presenting Mercurial Discovery Algorithm at LAGOS 2023

Pierre-Yves David
2023-09-25

Over its almost 20 year of existence, Mercurial has encountered many challenges and developed data-structures and algorithms to overcome them. As the feature-set and scale at which Mercurial is used grow, these challenge evolve and require deeper knowledge about the challenges we face, and iterative improvements to the existing solution.

Yet, this knowledge and algorithms tend to remain "hidden" within the Mercurial source code and community. To improve the situation, Octobus has been working with computer scientists. These researchers are happy to be provided with real-life challenges and algorithms, and in return can offer their expertise in formal analysis. This collaboration allows to document the existing knowledge accumulated by the Mercurial community and to offer a fresh perspective to further improve the existing solutions.

One of the visible results of this joint work is our contribution to the LAGOS 2023 Conference where our paper about The Problem of Discovery in Version Control Systems has been presented. It describes the concept of "changeset discovery" that takes place during each exchange (push or pull) between peers, where the local client queries the server to figure out which parts of the history are missing and need to be exchanged and which parts are common and do not need to be sent over the network. The article described the Mercurial approach to this problem and how it evolved over time. It compares it to what Git does and offers ideas on how to improve it further.

New Evolve extension release: version 11.0.2

2023-07-05

We released a new version of the evolve extension: 11.0.2.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is compatibility with the upcoming Mercurial 6.5.

Thanks to all the people involved:

Evolve: 11.0.2

  • compatibility with Mercurial 6.5

  • packaging: explicitly use python3 for running tests in debian/rules

Topic 1.0.2

  • compatibility with Mercurial 6.5

New Evolve extension release: version 11.0.1

2023-03-23

We released a new version of the evolve extension: 11.0.1.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable change is compatibility with the upcoming Mercurial 6.4.

Thanks to all the people involved:

Evolve: 11.0.1

  • compatibility with Mercurial 6.4

Topic 1.0.1

  • compatibility with Mercurial 6.4

New Evolve extension release: version 11.0.0

2023-02-26

We released a new version of the evolve extension: 11.0.0.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a feature release. The most notable change (included in 11.0.0rc0) is: the first stage of implementing topic namespaces, a feature designed to help users organize their topics and at the same time separate their work during development. For more technical context see TopicPlan#sub branches, namespacing and representation. Keep in mind that this is not the full implementation and most of the UI-related changes are coming later, but groundwork for topic namespaces is important to roll out and test as soon as possible. Other notable changes in this release candidate: ability to use Unicode word characters for topic names (previously only alphanumeric ASCII characters were allowed), evolve.serveronly and serverminitopic extensions were deprecated; evolve and topic extensions are now recommended for both clients and servers.

Thanks to all the people involved:

Evolve: 11.0.0

  • packaging: list all contributors in debian/copyright
  • packaging: run lintian on .deb packages built on our CI

Topic 1.0.0

  • topic: make hg split preserve topic namespace

Changes from the release candidate:

Evolve: 11.0.0rc0

  • deprecate evolve.serveronly extension, evolve extension is recommended for all users, clients and servers

  • fixup: support hg abort

  • evolve, pick, fixup: support hg continue

  • evolve: stop preserving all of {extras} for uninterrupted evolve operations

  • evolve: don't embed graft data when completing interrupted evolve operations

  • prune: pruning (without any successors) an already obsolete revision will no longer give a false warning about divergence

  • evolve: use detailed exit codes for most commands (enabled with ui.detailed-exit-code=yes)

Topic: 1.0.0rc0

  • deprecate serverminitopic extension, topic extension is recommended for all users, clients and servers

  • topic namespaces: introduce hg debug-topic-namespace, hg debug-topic-namespaces, hg debug-parse-fqbn, hg debug-format-fqbn commands, {topic_namespace} and {fqbn} template keywords topicnamespace() revset predicate

  • topic namespaces: implement exchange, including limited compatibility with older versions of hg and topic extension

  • topic: allow Unicode word characters in topic names

  • topic: use detailed exit codes for most commands (enabled with ui.detailed-exit-code=yes)

New Evolve extension release: version 10.5.3

2022-12-09

We released a new version of the evolve extension: 10.5.3.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. In evolve extension, caches that use SQLite database will no longer prevent pushes from succeeding, see issue6246. In topic extension, topic cache is now invalidated when branch cache is invalidated, this fixes stale labels shown in TortoiseHg. And hg next now correctly evolves the destination in cases when there is a mix of stable and regular destinations for user to select. The extensions are also marked compatible with Mercurial 6.3 (no changes to code were required).

Thanks to all the people involved:

Evolve: 10.5.3

  • compatibility with Mercurial 6.3

  • evolve: make obs-hash-range cache and stable-range cache (that both use SQLite databases) slightly more tolerant to FS issues (issue6246)

  • evolve: adapt to Python 3.11 BC breakage with random.sample()

  • next: properly handle cases when user selects an aspiring child, making sure that the destination is evolved when needed

Topic (0.24.2)

  • compatibility with Mercurial 6.3

  • topic: invalidate the topic cache when branchcache is invalidated, to fix an issue in TortoiseHg where stale topic labels appear in certain cases

New Evolve extension release: version 10.5.2

2022-07-13

We released a new version of the evolve extension: 10.5.2.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a compatibility release to mark the extensions as tested on Mercurial 6.2. No changes to code were required to actually make them compatible with Mercurial 6.2, this release makes sure users won't get any false warnings about compatibility. Also, as you might've noticed, 6.1 was the last release that supported Python 2, and because our stable branch targets latest stable release (6.2), we had to downgrade py2 tests on CI to "allowed to fail", but the extensions continue being fully compatible with Python 2.7, and will be compatible as long as there's support for older hg versions (currently the oldest supported version is 4.8).

Thanks to all the people involved:

Evolve: 10.5.2

  • compatibility with Mercurial 6.2

Topic: 0.24.1

  • compatibility with Mercurial 6.2

New Evolve extension release: version 10.5.1

2022-04-26

We released a new version of the evolve extension: 10.5.1.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI, and upgrade is recommended.

This is a bugfix release. The most notable changes are: more work on fixup command that was introduced in the previous release, and a couple of bug fixes. Evolve is no longer confused when trying to select the latest successor in cases where a changeset was split and its child was pruned, see issue6648. Evolve with --dry-run flag used to update working directory in certain cases, see issue6669, this was fixed. There are also changes that should help Debian package maintainers; e.g. it's now possible to use system cbor instead of the one we vendor.

Thanks to all the people involved:

Evolve: 10.5.1

  • evolve: avoid updating working copy when --dry-run is given (issue6669)

  • evolve: correctly pick successors of a split changeset when its child was pruned (issue6648)

  • fixup: allow to be aborted using hg abort

  • fixup: work correctly with bookmarks

  • packaging: allow to unvendor cbor, update debian/copyright

New Evolve extension release: version 10.5.0

2022-02-23

We released a new version of the evolve extension: 10.5.0.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a feature release. The most notable changes are: a new command: fixup, which is used to add changes from the working directory to an arbitrary revision. An issue with histedit not preserving topics in certain situations was also fixed, see issue6550. Evolve is now compatible with the upcoming Mercurial 6.1, which includes head computation code that is obsolescence-aware (adapted from the evolve extension). With an up-to-date client and server you should expect hg push to take much less time. Also compatibility with Mercurial 4.7 was dropped in this release.

Thanks to all the people involved:

Evolve: 10.5.0

  • compatibility with Mercurial 6.1

  • evolve: handle cases when working directory parent has multiple successors

  • multiple commands: do not check for new divergence if divergence is allowed via configuration

  • fixup: a new experimental command to add working directory changes to a specified revision

  • pick: show abort message after pick is aborted for consistency

  • evolve, pullbundle: drop compatibility with Mercurial 4.7

Topic: 0.24.0

  • compatibility with Mercurial 6.1

  • topic: make histedit preserve topics when the first changeset in a stack is rewritten (issue6550)

  • drop compatibility with Mercurial 4.7

New Evolve extension release: version 10.4.1

2021-11-19

We released a new version of the evolve extension: 10.4.1.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a maintenance release. It introduces compatibility with the upcoming Mercurial 6.0 and a couple of documentation improvements.

Thanks to all the people involved:

Evolve: 10.4.1

  • compatibility with Mercurial 6.0

  • documentation: add a help section about making evolve skip content-divergence check with experimental.evolution.allowdivergence.

  • documentation: mention that pick uses the active topic if it's set

Topic: 0.23.1

  • compatibility with Mercurial 6.0

New Evolve extension release: version 10.4.0

2021-10-15

We released a new version of the evolve extension: 10.4.0.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a feature release. The most notable changes are: evolve will now produce the same result regardless of revision numbers when resolving content-divergence; an annoying topic bug that sometimes prevented various history-rewriting commands from completing with a KeyError was fixed. See issue6500. Also compatibility with Mercurial 4.6 was dropped in this release.

Thanks to all the people involved:

Evolve: 10.4.0

  • evolve: use a more stable criteria for picking p1 when solving content-divergence (most recent evolution will be used)

  • evolve: drop the deprecated --unstable, --divergent and --bumped flags, they were replaced by --orphan, --content-divergent and --phase-divergent respectively a long time ago

  • evolve: remove experimental.obshashrange.lru-size docs, that config option didn't do anything for a long time

  • evolve: use precheck function from Mercurial 5.9+ when available, mostly affects error messages and exit codes

  • next: add an --abort flag

  • evolve, topic, pullbundle: drop compatibility with Mercurial 4.6

Topic: 0.23.0

  • topic: don't cache .topic() of memctx instances, as that could produce KeyError: b'topic' during some rewrite operations (issue6500)
  • topic: drop old code for working with amends on ancient hg versions (~3.6)

New Evolve extension release: version 10.3.3

2021-08-13

We released a new version of the evolve extension: 10.3.3.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a bugfix release. The most notable changes are: compatibility with Mercurial 5.9, and a bug that could lead to data loss when using evolve commands on a merge commit was fixed. See https://bz.mercurial-scm.org/show_bug.cgi?id=6416.

Thanks to all the people involved:

Evolve: 10.3.3

  • evolve: compatibility with Mercurial 5.9
  • fold: make sure to save commit messages in last-message.txt, also affects metaedit (issue6549)
  • touch/fold/metaedit/rewind: no longer lose changes from merge commits (issue6416). As a consequence (for technical reasons), when run with Mercurial 5.5 and earlier, these commands now require there to be no unresolved conflicts.

Topic: 0.22.3

  • topic: correctly update from public commits with a (now hidden) topic when hg update is called without any revision (issue6553)
  • topic: fix the help text to show how to disable publishing

New Evolve extension release: version 10.3.2

2021-05-28

We released a new version of the evolve extension: 10.3.2.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a bugfix release. The most notable changes are: previously changing topic of a merge commit could lose some file changes, this has been now fixed, and experimental.topic.publish-bare-branch and experimental.auto-publish config options should now interact with each other correctly. To see more information about these experimental config options, try hg help -e evolve and hg help -e topic.

Thanks to all the people involved:

Evolve: 10.3.2

  • next: remove duplicated targets when updating from an unstable changeset
  • evolve: use "served" repo filter to guess what the server will publish

Topic: 0.22.2

  • topic: don't lose any file changes when changing topic of a merge commit
  • topic: announce ext-topics-publish capability in case of SSH and HTTP too

New Evolve extension release: version 10.3.1

2021-04-25

We released a new version of the evolve extension: 10.3.1.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a bugfix release that addresses various issues and adds compatibility with the upcoming Mercurial 5.8. Check the changelog for details. The most notable changes are: cache reuse on different systems (such as using 64-bit and 32-bit Python to push/pull the same repo) should now be safe, and hg next now handles unstable changesets with topics more correctly.

Thanks to all the people involved:

Evolve: 10.3.1

  • cache: fix corruption issue when mixing 32-bit and 64-bit environments

  • next: unstable changesets with a different topic are no longer targets for hg next as long as it's invoked without --no-topic flag

  • next: when some potential targets are unstable, ask user which changeset they want to update to (only mixing stable and unstable when --evolve flag is given, which is the default)

  • packaging: default to using Python 3 in Makefile

Topic: 0.22.1

  • compatibility with Mercurial 5.8

New Evolve extension release: version 10.3.0

2021-03-12

We released a new version of the evolve extension: 10.3.0.

This extension extends core features around history rewriting and draft changesets sharing.

As usual, the release is available on PyPI and upgrade is recommended.

This is a feature release that comes with a variety of improvements and bugfixes. Check the changelog for details. The most notable changes are: improved rewind logic in cases involving folds, an experimental ability to perform evolution in-memory (only on Mercurial 5.6 and newer), improved content-divergence resolution logic in cases involving parent changes.

More details on in-memory evolve can be found in hg help -e evolve.

Thanks to all the people involved:

Evolve: 10.3.0

  • doc: document stack as a substitute for MQ's qseries

  • doc: document revsets provided by evolve extension

  • evolve: add a experimental.evolution.in-memory config for running evolve in memory (hg >= 5.6)

  • evolve: improve content-divergence resolution that involves parent changes

  • evolve: preserve wdir parent when using hg evolve --stop

  • obslog: clarify the command name in the help,

  • pdiff, pstatus: drop some irrelevant command flags inherited from hg diff and hg status respectively

  • rewind: detect and abort on cases when we rewind to changesets that are predecessors / successors of each other

  • rewind: when user gives only some parts of a fold, include the other parts as well, or abort if they are missing from local repo

Topic: 0.22.0

  • doc: change topic phrase 'disappear' to 'fade out'