# HG changeset patch # User Martin von Zweigbergk # Date 1613112763 28800 # Node ID 657e490756e62f8c61623b55a3a4b5963e110db2 # Parent f1ed5c304f4558218e4f827340c1be256574844d fix: remove unnecessary and overly strict check for divergence `rewriteutil.precheck()` checks for divergence these days, so we can remove the redundant check in `hg fix`. Differential Revision: https://phab.mercurial-scm.org/D12088 diff -r f1ed5c304f45 -r 657e490756e6 hgext/fix.py --- a/hgext/fix.py Wed Jan 26 10:11:01 2022 -0800 +++ b/hgext/fix.py Thu Feb 11 22:52:43 2021 -0800 @@ -149,7 +149,6 @@ mdiff, merge, mergestate as mergestatemod, - obsolete, pycompat, registrar, rewriteutil, @@ -463,8 +462,6 @@ revs = set(logcmdutil.revrange(repo, opts[b'rev'])) if opts.get(b'working_dir'): revs.add(wdirrev) - for rev in revs: - checkfixablectx(ui, repo, repo[rev]) # Allow fixing only wdir() even if there's an unfinished operation if not (len(revs) == 1 and wdirrev in revs): cmdutil.checkunfinished(repo) @@ -481,16 +478,6 @@ return revs -def checkfixablectx(ui, repo, ctx): - """Aborts if the revision shouldn't be replaced with a fixed one.""" - if ctx.obsolete(): - # It would be better to actually check if the revision has a successor. - if not obsolete.isenabled(repo, obsolete.allowdivergenceopt): - raise error.Abort( - b'fixing obsolete revision could cause divergence' - ) - - def pathstofix(ui, repo, pats, opts, match, basectxs, fixctx): """Returns the set of files that should be fixed in a context diff -r f1ed5c304f45 -r 657e490756e6 tests/test-fix.t --- a/tests/test-fix.t Wed Jan 26 10:11:01 2022 -0800 +++ b/tests/test-fix.t Thu Feb 11 22:52:43 2021 -0800 @@ -1169,8 +1169,9 @@ $ hg commit -Aqm "foo" $ hg ci --amend -m rewritten $ hg --hidden fix -r 0 - abort: fixing obsolete revision could cause divergence - [255] + abort: cannot fix b87e30dbf19b, as that creates content-divergence with 2e007a78dfb8 + (add --verbose for details or see 'hg help evolution.instability') + [10] $ hg --hidden fix -r 0 --config experimental.evolution.allowdivergence=true 2 new content-divergent changesets