Fix thinpack support over http
authorjsbain <jsbain@yahoo.com>
Tue, 1 Dec 2015 12:28:34 +0000 (12:28 +0000)
committerJelmer Vernooij <jelmer@jelmer.uk>
Thu, 3 Dec 2015 15:55:55 +0000 (15:55 +0000)
dulwich/client.py

index 4283d4876c56509bc97d0560395ac83dc2454b04..fd3e8edfa37ac7f553e051dcfc2216a508883406 100644 (file)
@@ -233,8 +233,14 @@ class GitClient(object):
         """
         if determine_wants is None:
             determine_wants = target.object_store.determine_wants_all
-
-        f, commit, abort = target.object_store.add_pack()
+        if CAPABILITY_THIN_PACK in self._fetch_capabilities:
+           f = BytesIO()
+           def commit():
+              if f.tell():
+                f.seek(0)
+                target.object_store.add_thin_pack(f.read, None)
+        else:
+           f, commit, abort = target.object_store.add_pack()
         try:
             result = self.fetch_pack(
                 path, determine_wants, target.get_graph_walker(), f.write,