Mercurial > hg
changeset 48672:657e490756e6
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
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 11 Feb 2021 22:52:43 -0800 |
parents | f1ed5c304f45 |
children | 576040155dba |
files | hgext/fix.py tests/test-fix.t |
diffstat | 2 files changed, 3 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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