update: properly overwrite `check` config with `--no-` variants
authorPierre-Yves David <pierre-yves.david@octobus.net>
Fri, 03 Dec 2021 12:03:23 +0100
changeset 48455 4d59e0f909e0
parent 48454 51f521900473
child 48456 f77e4daaf612
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
mercurial/commands.py
relnotes/next
tests/test-update-branches.t
--- 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