From patchwork Tue Jan 25 18:32:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D12088: fix: remove unnecessary and overly strict check for divergence From: phabricator X-Patchwork-Id: 50414 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Tue, 25 Jan 2022 18:32:40 +0000 martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY `rewriteutil.precheck()` checks for divergence these days, so we can remove the redundant check in `hg fix`. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12088 AFFECTED FILES hgext/fix.py tests/test-fix.t CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/test-fix.t b/tests/test-fix.t --- a/tests/test-fix.t +++ b/tests/test-fix.t @@ -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 diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -463,8 +463,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 +479,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