update: properly overwrite `check` config with `--no-` variants
Before this change `--merge` override `commands.update.check=abort/noconflict`,
and `--check` "override" `commands.update.check=none/linear`. However the
`--no-merge` and `--no-check` version where not doing anything.
The `--no-` two flags now behave properly.
Differential Revision: https://phab.mercurial-scm.org/D11851
--- a/mercurial/commands.py Fri Dec 03 12:19:36 2021 +0100
+++ b/mercurial/commands.py Fri Dec 03 12:03:23 2021 +0100
@@ -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():
--- a/relnotes/next Fri Dec 03 12:19:36 2021 +0100
+++ b/relnotes/next Fri Dec 03 12:03:23 2021 +0100
@@ -11,6 +11,7 @@
== Bug Fixes ==
+The `--no-check` and `--no-merge` now properly overwrite the behavior from `commands.update.check`.
== Backwards Compatibility Changes ==
--- a/tests/test-update-branches.t Fri Dec 03 12:19:36 2021 +0100
+++ b/tests/test-update-branches.t Fri Dec 03 12:03:23 2021 +0100
@@ -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