瀏覽代碼

object_store.DiskObjectStore.move_in_thin_pack: close temp pack
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>

Tay Ray Chuan 14 年之前
父節點
當前提交
f1c2c06daf
共有 1 個文件被更改,包括 8 次插入4 次删除
  1. 8 4
      dulwich/object_store.py

+ 8 - 4
dulwich/object_store.py

@@ -402,10 +402,14 @@ class DiskObjectStore(PackBasedObjectStore):
         data.create_index_v2(temppath)
         p = Pack.from_objects(data, load_pack_index(temppath))
 
-        # Write a full pack version
-        temppath = os.path.join(self.pack_dir,
-            sha_to_hex(urllib2.randombytes(20))+".temppack")
-        write_pack(temppath, ((o, None) for o in p.iterobjects()), len(p))
+        try:
+            # Write a full pack version
+            temppath = os.path.join(self.pack_dir,
+                sha_to_hex(urllib2.randombytes(20))+".temppack")
+            write_pack(temppath, ((o, None) for o in p.iterobjects()), len(p))
+        finally:
+            p.close()
+
         pack_sha = load_pack_index(temppath+".idx").objects_sha1()
         newbasename = os.path.join(self.pack_dir, "pack-%s" % pack_sha)
         os.rename(temppath+".pack", newbasename+".pack")