# HG changeset patch # User Martin von Zweigbergk # Date 1580849215 28800 # Node ID d57f4326623e3a6a37688ef960942a6e4ef6745d # Parent ce8479d1a6f9ca0c2807bcc99a3adc11cb5d3875 fold: replace a compat condition with a less specific proxy If `scmutil.cleanupnodes()` is overridden, the check in `scmutil.cleanupnodes.__code__.co_varnames` will fail. Let's use a less specific proxy for that condition so extensions are safely override `scmutil.cleanupnodes()`. I picked `util.safehasattr(scmutil, 'nullrev')` as the proxy. That basically checks for Mercurial commit d739f423bf06, which is two commits later than the commit we actually care about. diff -r ce8479d1a6f9 -r d57f4326623e hgext3rd/evolve/cmdrewrite.py --- a/hgext3rd/evolve/cmdrewrite.py Tue Feb 11 17:21:43 2020 +0800 +++ b/hgext3rd/evolve/cmdrewrite.py Tue Feb 04 12:46:55 2020 -0800 @@ -801,7 +801,9 @@ p2.node()], commitopts=commitopts) phases.retractboundary(repo, tr, targetphase, [newid]) - if 'repls' in scmutil.cleanupnodes.__code__.co_varnames: + # Use this condition as a proxy since the commit we care about + # (b99903534e06) didn't change any signatures. + if util.safehasattr(scmutil, 'nullrev'): replacements = {tuple(ctx.node() for ctx in allctx): [newid]} scmutil.cleanupnodes(repo, replacements, operation=b"fold", metadata=metadata)