# HG changeset patch # User Anton Shestakov <av6@dwimlabs.net> # Date 1615287010 -28800 # Tue Mar 09 18:50:10 2021 +0800 # Node ID 82040a455e71caf61be1e2468322b4ca74df16cb # Parent 524eb673ac52f5aa88127be040f7041cc85aeb10 evolve: check if in-memory is supported on a good enough level for evolve diff --git a/CHANGELOG b/CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -5,7 +5,7 @@ -------------------- * evolve: add a experimental.evolution.in-memory config for running evolve - in memory + 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, diff --git a/hgext3rd/evolve/evolvecmd.py b/hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py +++ b/hgext3rd/evolve/evolvecmd.py @@ -918,6 +918,13 @@ return commitmsg def use_in_memory_merge(repo): + try: + from mercurial import mergestate as mergestatemod + mergestatemod.memmergestate + except (AttributeError, ImportError): + # no in-memory evolve if Mercurial lacks the required code + # hg <= 5.5 (19590b126764) + return False config_value = repo.ui.config(b'experimental', b'evolution.in-memory') if config_value == b'force': return True