diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py --- a/mercurial/filemerge.py +++ b/mercurial/filemerge.py @@ -753,6 +753,7 @@ if ui.promptchoice(_("was merge of '%s' successful (yn)?" "$$ &Yes $$ &No") % fd, 1): r = 1 + _onfilemergefailure(ui) if not r and not checked and (_toolbool(ui, tool, "checkchanged") or 'changed' in @@ -762,6 +763,7 @@ "was merge successful (yn)?" "$$ &Yes $$ &No") % fd, 1): r = 1 + _onfilemergefailure(ui) if back is not None and _toolbool(ui, tool, "fixeol"): _matcheol(_workingpath(repo, fcd), back) diff --git a/tests/test-merge-halt.t b/tests/test-merge-halt.t --- a/tests/test-merge-halt.t +++ b/tests/test-merge-halt.t @@ -85,7 +85,6 @@ merging b output file a appears unchanged was merge successful (yn)? n - merging a failed! merge halted after failed merge (see hg resolve) [1] @@ -118,13 +117,16 @@ merging a merging b was merge of 'a' successful (yn)? n - merging a failed! merge halted after failed merge (see hg resolve) [1] $ hg rebase --abort rebase aborted Check that a requested abort actually works + $ cat <> $HGRCPATH + > [merge] + > onfailure=prompt + > EOS $ cat < n > EOS @@ -132,6 +134,7 @@ merging a merging b merging a failed! + continue merge operation (yn)? n merge halted after failed merge (see hg resolve) [1]