2
0
Эх сурвалжийг харах

Ensure that number of records written matches initial indication of number of records.

Jelmer Vernooij 3 жил өмнө
parent
commit
4929094efd
1 өөрчлөгдсөн 6 нэмэгдсэн , 0 устгасан
  1. 6 0
      dulwich/pack.py

+ 6 - 0
dulwich/pack.py

@@ -1729,6 +1729,7 @@ def write_pack_data(f, num_records, records, progress=None, compression_level=-1
     entries = {}
     f = SHA1Writer(f)
     write_pack_header(f, num_records)
+    actual_num_records = 0
     for i, (type_num, object_id, delta_base, raw) in enumerate(records):
         if progress is not None:
             progress(("writing pack data: %d/%d\r" % (i, num_records)).encode("ascii"))
@@ -1743,7 +1744,12 @@ def write_pack_data(f, num_records, records, progress=None, compression_level=-1
                 type_num = OFS_DELTA
                 raw = (offset - base_offset, raw)
         crc32 = write_pack_object(f, type_num, raw, compression_level=compression_level)
+        actual_num_records += 1
         entries[object_id] = (offset, crc32)
+    if actual_num_records != num_records:
+        raise AssertionError(
+            'actual records written differs: %d != %d' % (
+                actual_num_records, num_records))
     return entries, f.write_sha()