bdiff: (pure) support array.array arrays (
issue5130)
--- a/mercurial/pure/bdiff.py Wed Mar 09 22:21:08 2016 +0000
+++ b/mercurial/pure/bdiff.py Tue Mar 08 17:26:12 2016 +0000
@@ -7,6 +7,7 @@
from __future__ import absolute_import
+import array
import difflib
import re
import struct
@@ -50,9 +51,15 @@
r.append(prev)
return r
+def _tostring(c):
+ if type(c) is array.array:
+ # this copy overhead isn't ideal
+ return c.tostring()
+ return str(c)
+
def bdiff(a, b):
- a = str(a).splitlines(True)
- b = str(b).splitlines(True)
+ a = _tostring(a).splitlines(True)
+ b = _tostring(b).splitlines(True)
if not a:
s = "".join(b)
--- a/tests/test-clone-uncompressed.t Wed Mar 09 22:21:08 2016 +0000
+++ b/tests/test-clone-uncompressed.t Tue Mar 08 17:26:12 2016 +0000
@@ -1,5 +1,8 @@
#require serve
+Initialize repository
+the status call is to check for issue5130
+
$ hg init server
$ cd server
$ touch foo
@@ -8,6 +11,7 @@
... with open(str(i), 'wb') as fh:
... fh.write(str(i))
$ hg -q commit -A -m 'add a lot of files'
+ $ hg st
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
$ cd ..