Mercurial > hg
changeset 44177:1850066f9e36
merge: don't auto-pick destination with `hg merge 'wdir()'`
If the user doesn't specify a commit to merge with, we'll have
`node==None` in `commands.merge()`. We'll then try to find a good
commit to merge with. However, if the user, for some strange reason,
runs `hg merge 'wdir()'`, we'll also have `node==None` and we'll do
that same. That's clearly not the intent, so let's not do that.
It turns out we'd instead crash on that command after this patch, so I
added special handling of it too.
Differential Revision: https://phab.mercurial-scm.org/D7996
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 24 Jan 2020 17:49:21 -0800 |
parents | 6744859ff3ee |
children | bd4f666b55a7 |
files | mercurial/commands.py tests/test-merge2.t |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Jan 24 16:05:11 2020 -0800 +++ b/mercurial/commands.py Fri Jan 24 17:49:21 2020 -0800 @@ -4866,8 +4866,7 @@ if node: node = scmutil.revsingle(repo, node).node() - - if not node: + else: if ui.configbool(b'commands', b'merge.require-rev'): raise error.Abort( _( @@ -4877,6 +4876,9 @@ ) node = repo[destutil.destmerge(repo)].node() + if node is None: + raise error.Abort(_(b'merging with the working copy has no effect')) + if opts.get(b'preview'): # find nodes that are ancestors of p2 but not of p1 p1 = repo.lookup(b'.')