[PATCH 12 of 13] largefiles: use filechunkiter for iterating largefile when serving getlfile

Mads Kiilerich mads at kiilerich.com
Mon Apr 15 21:43:29 CDT 2013


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1366065621 -7200
#      Tue Apr 16 00:40:21 2013 +0200
# Node ID ec0eedc2dd147693b0e7f1560dfaa46ded744761
# Parent  376ec3c2b2ae87d1328fa2541b7ecf3acf6bbaf9
largefiles: use filechunkiter for iterating largefile when serving getlfile

The default file iterator is line based and will give odd chunk sizes - often
very short and relatively expensive.

diff --git a/hgext/largefiles/proto.py b/hgext/largefiles/proto.py
--- a/hgext/largefiles/proto.py
+++ b/hgext/largefiles/proto.py
@@ -63,7 +63,7 @@
     # ssh proto does for string responses.
     def generator():
         yield '%d\n' % length
-        for chunk in f:
+        for chunk in util.filechunkiter(f):
             yield chunk
     return wireproto.streamres(generator())
 


More information about the Mercurial-devel mailing list