Mercurial > hg
diff mercurial/commands.py @ 26303:c99b4d6efdd8
merge: move default destination computation in a revset
This is another step toward having "default" destination more clear and unified.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 17 Sep 2015 14:03:15 -0700 |
parents | 5ba3358ebc7f |
children | 8c7d8d5e1e0f |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Sep 17 12:44:52 2015 -0700 +++ b/mercurial/commands.py Thu Sep 17 14:03:15 2015 -0700 @@ -4768,58 +4768,8 @@ if node: node = scmutil.revsingle(repo, node).node() - if not node and repo._activebookmark: - bmheads = repo.bookmarkheads(repo._activebookmark) - curhead = repo[repo._activebookmark].node() - if len(bmheads) == 2: - if curhead == bmheads[0]: - node = bmheads[1] - else: - node = bmheads[0] - elif len(bmheads) > 2: - raise util.Abort(_("multiple matching bookmarks to merge - " - "please merge with an explicit rev or bookmark"), - hint=_("run 'hg heads' to see all heads")) - elif len(bmheads) <= 1: - raise util.Abort(_("no matching bookmark to merge - " - "please merge with an explicit rev or bookmark"), - hint=_("run 'hg heads' to see all heads")) - - elif not node: - branch = repo[None].branch() - bheads = repo.branchheads(branch) - nbhs = [bh for bh in bheads if not repo[bh].bookmarks()] - - if len(nbhs) > 2: - raise util.Abort(_("branch '%s' has %d heads - " - "please merge with an explicit rev") - % (branch, len(bheads)), - hint=_("run 'hg heads .' to see heads")) - - parent = repo.dirstate.p1() - if len(nbhs) <= 1: - if len(bheads) > 1: - raise util.Abort(_("heads are bookmarked - " - "please merge with an explicit rev"), - hint=_("run 'hg heads' to see all heads")) - if len(repo.heads()) > 1: - raise util.Abort(_("branch '%s' has one head - " - "please merge with an explicit rev") - % branch, - hint=_("run 'hg heads' to see all heads")) - msg, hint = _('nothing to merge'), None - if parent != repo.lookup(branch): - hint = _("use 'hg update' instead") - raise util.Abort(msg, hint=hint) - - if parent not in bheads: - raise util.Abort(_('working directory not at a head revision'), - hint=_("use 'hg update' or merge with an " - "explicit revision")) - if parent == nbhs[0]: - node = nbhs[-1] - else: - node = nbhs[0] + if not node: + node = scmutil.revsingle(repo, '_mergedefaultdest()').node() if opts.get('preview'): # find nodes that are ancestors of p2 but not of p1