diff -r 5a5aee8ba980 -r d543ef183eb8 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Wed Mar 04 14:21:23 2020 -0500 +++ b/mercurial/cmdutil.py Thu Mar 05 10:52:51 2020 -0500 @@ -961,7 +961,7 @@ raise error.UnknownCommand(cmd, allcmds) -def changebranch(ui, repo, revs, label): +def changebranch(ui, repo, revs, label, opts): """ Change the branch name of given revs to label """ with repo.wlock(), repo.lock(), repo.transaction(b'branches'): @@ -979,7 +979,11 @@ root = repo[roots.first()] rpb = {parent.branch() for parent in root.parents()} - if label not in rpb and label in repo.branchmap(): + if ( + not opts.get(b'force') + and label not in rpb + and label in repo.branchmap() + ): raise error.Abort(_(b"a branch of the same name already exists")) if repo.revs(b'obsolete() and %ld', revs):