diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -5363,9 +5363,6 @@ def update(ui, repo, node=None, rev=None brev = rev rev = scmutil.revsingle(repo, rev, rev).rev() - if check: - cmdutil.bailifchanged(repo, merge=False) - repo.ui.setconfig('ui', 'forcemerge', tool, 'update') return hg.updatetotally(ui, repo, rev, brev, clean=clean, check=check) diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -739,6 +739,8 @@ def updatetotally(ui, repo, checkout, br if clean: ret = _clean(repo, checkout) else: + if check: + cmdutil.bailifchanged(repo, merge=False) ret = _update(repo, checkout) if not ret and movemarkfrom: