浏览代码

Make fetch_objects() return the number of objects.

Jelmer Vernooij 16 年之前
父节点
当前提交
1ce1158d6a
共有 2 个文件被更改,包括 4 次插入4 次删除
  1. 2 2
      dulwich/repo.py
  2. 2 2
      dulwich/server.py

+ 2 - 2
dulwich/repo.py

@@ -145,10 +145,10 @@ class Repo(object):
         that a revision is present.
     :param progress: Simple progress function that will be called with 
         updated progress strings.
+    :return: tuple with number of objects, iterator over objects
     """
     shas = self.find_missing_objects(determine_wants, graph_walker, progress)
-    for sha in shas:
-        yield self.get_object(sha)
+    return (len(shas), (self.get_object(sha) for sha in shas))
 
   def object_dir(self):
     return os.path.join(self.controldir(), OBJECTDIR)

+ 2 - 2
dulwich/server.py

@@ -145,10 +145,10 @@ class UploadPackHandler(Handler):
                 self.proto.write_pkt_line("NAK\n")
 
         graph_walker = ProtocolGraphWalker(self.proto)
-        objects = list(self.backend.fetch_objects(determine_wants, graph_walker, progress))
+        num_objects, objects_iter = self.backend.fetch_objects(determine_wants, graph_walker, progress)
         progress("dul-daemon says what\n")
         progress("counting objects: %d, done.\n" % len(objects))
-        write_pack_data(ProtocolFile(None, write), objects, len(objects))
+        write_pack_data(ProtocolFile(None, write), objects_iter, num_objects)
         progress("how was that, then?\n")
         # we are done
         self.proto.write("0000")