# HG changeset patch # User Augie Fackler <augie@google.com> # Date 2019-09-25 15:02:32 # Node ID ee1ef76d7339df90a0816ebbe773869656f46f71 # Parent 1ad3ebb39c6146cb33d50bf0c8c50bc2ec78e464 hg: have `updatetotally` more thoroughly check updatecheck argument (API) .. api:: `mercurial.hg.updatetotally` is now more thorough about checking its `updatecheck` keyword argument. Previously invalid values would have used the configured default updatecheck method, but now will raise ValueError. Differential Revision: https://phab.mercurial-scm.org/D6878 diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -883,6 +883,12 @@ def clean(repo, node, show_stats=True, q # naming conflict in updatetotally() _clean = clean +_VALID_UPDATECHECKS = {mergemod.UPDATECHECK_ABORT, + mergemod.UPDATECHECK_NONE, + mergemod.UPDATECHECK_LINEAR, + mergemod.UPDATECHECK_NO_CONFLICT, +} + def updatetotally(ui, repo, checkout, brev, clean=False, updatecheck=None): """Update the working directory with extra care for non-file components @@ -911,12 +917,12 @@ def updatetotally(ui, repo, checkout, br """ if updatecheck is None: updatecheck = ui.config('commands', 'update.check') - if updatecheck not in (mergemod.UPDATECHECK_ABORT, - mergemod.UPDATECHECK_NONE, - mergemod.UPDATECHECK_LINEAR, - mergemod.UPDATECHECK_NO_CONFLICT): + if updatecheck not in _VALID_UPDATECHECKS: # If not configured, or invalid value configured updatecheck = mergemod.UPDATECHECK_LINEAR + if updatecheck not in _VALID_UPDATECHECKS: + raise ValueError(r'Invalid updatecheck value %r (can accept %r)' % ( + updatecheck, _VALID_UPDATECHECKS)) with repo.wlock(): movemarkfrom = None warndest = False