diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -7832,9 +7832,9 @@ raise error.InputError(_(b"you can't specify a revision and a date")) updatecheck = None - if check: + if check or merge is not None and not merge: updatecheck = b'abort' - elif merge: + elif merge or check is not None and not check: updatecheck = b'none' with repo.wlock(): diff --git a/relnotes/next b/relnotes/next --- a/relnotes/next +++ b/relnotes/next @@ -11,6 +11,7 @@ == Bug Fixes == +The `--no-check` and `--no-merge` now properly overwrite the behavior from `commands.update.check`. == Backwards Compatibility Changes == diff --git a/tests/test-update-branches.t b/tests/test-update-branches.t --- a/tests/test-update-branches.t +++ b/tests/test-update-branches.t @@ -226,6 +226,11 @@ parent=2 M foo + $ revtest '--merge none dirty linear' dirty 1 2 --no-check + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + parent=2 + M foo + $ revtest 'none dirty linear' dirty 1 2 --clean 2 files updated, 0 files merged, 0 files removed, 0 files unresolved parent=2 @@ -247,6 +252,11 @@ parent=1 M foo + $ revtest 'none dirty linear' dirty 1 2 --no-merge + abort: uncommitted changes + parent=1 + M foo + $ revtest 'none dirty linear' dirty 1 2 --clean 2 files updated, 0 files merged, 0 files removed, 0 files unresolved parent=2