py3: do not pass a memoryview to bdiff.bdiff()
This doesn't look nice, but I don't know how to make a zero-copy slice of
bytes which is compatible with the buffer protocol.
--- a/mercurial/mdiff.py Sat Mar 03 07:00:37 2018 -0500
+++ b/mercurial/mdiff.py Sat Mar 03 07:24:25 2018 -0500
@@ -30,9 +30,17 @@
fixws = bdiff.fixws
patches = mpatch.patches
patchedsize = mpatch.patchedsize
-textdiff = bdiff.bdiff
+_textdiff = bdiff.bdiff
splitnewlines = bdiff.splitnewlines
+# On Python 3, util.buffer() creates a memoryview, which appears not
+# supporting the buffer protocol
+if pycompat.ispy3:
+ def textdiff(a, b):
+ return _textdiff(bytes(a), bytes(b))
+else:
+ textdiff = _textdiff
+
class diffopts(object):
'''context is the number of context lines
text treats all files as text