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
$ hg init t
$ cd t
$ echo This is file a1 > a
$ hg add a
$ hg commit -m "commit #0"
$ echo This is file b1 > b
$ hg add b
$ hg commit -m "commit #1"
$ rm b
$ hg update 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo This is file b2 > b
$ hg add b
$ hg commit -m "commit #2"
created new head
$ cd ..; rm -r t
$ mkdir t
$ cd t
$ hg init
$ echo This is file a1 > a
$ hg add a
$ hg commit -m "commit #0"
$ echo This is file b1 > b
$ hg add b
$ hg commit -m "commit #1"
$ rm b
$ hg update 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo This is file b2 > b
$ hg commit -A -m "commit #2"
adding b
created new head
$ cd ..; rm -r t
$ hg init t
$ cd t
$ echo This is file a1 > a
$ hg add a
$ hg commit -m "commit #0"
$ echo This is file b1 > b
$ hg add b
$ hg commit -m "commit #1"
$ rm b
$ hg remove b
$ hg update 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo This is file b2 > b
$ hg commit -A -m "commit #2"
adding b
created new head
$ hg merge 'wdir()'
abort: merging with the working copy has no effect
[255]
$ cd ..