--- a/mercurial/commands.py Fri Nov 09 10:47:24 2018 -0800
+++ b/mercurial/commands.py Sat Nov 10 12:07:26 2018 +0900
@@ -4959,7 +4959,7 @@
if hasconflictmarkers:
ui.warn(_('warning: the following files still have conflict '
'markers:\n ') + '\n '.join(hasconflictmarkers) + '\n')
- if markcheck == 'abort' and not all:
+ if markcheck == 'abort' and not all and not pats:
raise error.Abort(_('conflict markers detected'),
hint=_('use --all to mark anyway'))
--- a/mercurial/help/internals/config.txt Fri Nov 09 10:47:24 2018 -0800
+++ b/mercurial/help/internals/config.txt Sat Nov 10 12:07:26 2018 +0900
@@ -99,10 +99,11 @@
then stay in use until compatibility with Mercurial 4.2 is dropped.
As reminder, here are the default values for each config type:
-- config: None
-- configbool: False
-- configbytes: 0
-- configdate: None
-- configint: None
-- configlist: []
-- configpath: None
+
+ - config: None
+ - configbool: False
+ - configbytes: 0
+ - configdate: None
+ - configint: None
+ - configlist: []
+ - configpath: None
--- a/mercurial/hgweb/request.py Fri Nov 09 10:47:24 2018 -0800
+++ b/mercurial/hgweb/request.py Sat Nov 10 12:07:26 2018 +0900
@@ -540,6 +540,12 @@
yield self._bodybytes
elif self._bodygen:
for chunk in self._bodygen:
+ # PEP-3333 says that output must be bytes. And some WSGI
+ # implementations enforce this. We cast bytes-like types here
+ # for convenience.
+ if isinstance(chunk, bytearray):
+ chunk = bytes(chunk)
+
yield chunk
elif self._bodywillwrite:
self._bodywritefn = write
--- a/mercurial/ui.py Fri Nov 09 10:47:24 2018 -0800
+++ b/mercurial/ui.py Sat Nov 10 12:07:26 2018 +0900
@@ -67,9 +67,6 @@
update.check = noconflict
# Show conflicts information in `hg status`
status.verbose = True
-# Refuse to perform `hg resolve --mark` on files that still have conflict
-# markers
-resolve.mark-check = abort
[diff]
git = 1
--- a/tests/test-resolve.t Fri Nov 09 10:47:24 2018 -0800
+++ b/tests/test-resolve.t Sat Nov 10 12:07:26 2018 +0900
@@ -445,6 +445,19 @@
$ hg resolve -l
R file1
R file2
+Test with marking an explicit file as resolved, this should not abort (since
+there's no --force flag, we have no way of combining --all with a filename)
+ $ hg resolve --unmark
+ $ hg resolve -l
+ U file1
+ U file2
+(This downgrades to a warning since an explicit file was specified).
+ $ hg --config commands.resolve.mark-check=abort resolve -m file2
+ warning: the following files still have conflict markers:
+ file2
+ $ hg resolve -l
+ U file1
+ R file2
Testing the --re-merge flag
$ hg resolve --unmark file1
$ hg resolve -l