Workaround for "Not enough space" error due to the bug of Windows.
authorShun-ichi GOTO <shunichi.goto@gmail.com>
Fri, 14 Dec 2007 16:47:41 +0100
changeset 5647 165cda754d9e
parent 5646 c722bd73c948
child 5648 2079faccb408
Workaround for "Not enough space" error due to the bug of Windows. Large write requests fail when stdout is switched to binary mode. As a workaround, limit the data size to write once.
mercurial/util.py
--- a/mercurial/util.py	Thu Dec 13 14:25:51 2007 -0600
+++ b/mercurial/util.py	Fri Dec 14 16:47:41 2007 +0100
@@ -919,7 +919,15 @@
 
         def write(self, s):
             try:
-                return self.fp.write(s)
+                # This is workaround for "Not enough space" error on
+                # writing large size of data to console.
+                limit = 16000
+                l = len(s)
+                start = 0
+                while start < l:
+                    end = start + limit
+                    self.fp.write(s[start:end])
+                    start = end
             except IOError, inst:
                 if inst.errno != 0: raise
                 self.close()