diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -384,13 +384,9 @@ def update(repo, node, branchmerge, forc if branchmerge: raise util.Abort(_("there is nothing to merge, just use " "'hg update' or look at 'hg heads'")) - elif not branchmerge: - if not overwrite: - if wc.files(): - raise util.Abort(_("outstanding uncommited changes, use " - "'hg update -C' to lose changes")) - else: - overwrite = True + elif not (overwrite or branchmerge): + raise util.Abort(_("update spans branches, use 'hg merge' " + "or 'hg update -C' to lose changes")) if branchmerge and not forcemerge: if wc.modified() or wc.added() or wc.removed(): raise util.Abort(_("outstanding uncommitted changes"))