##// END OF EJS Templates
dirstate-v2: Move data file info in the docket closer together...
Simon Sapin -
r48977:d467e44f default
parent child Browse files
Show More
@@ -21,15 +21,15 b' TREE_METADATA_SIZE = 44'
21 21 # * 12 bytes: format marker
22 22 # * 32 bytes: node ID of the working directory's first parent
23 23 # * 32 bytes: node ID of the working directory's second parent
24 # * {TREE_METADATA_SIZE} bytes: tree metadata, parsed separately
24 25 # * 4 bytes: big-endian used size of the data file
25 # * {TREE_METADATA_SIZE} bytes: tree metadata, parsed separately
26 26 # * 1 byte: length of the data file's UUID
27 27 # * variable: data file's UUID
28 28 #
29 29 # Node IDs are null-padded if shorter than 32 bytes.
30 30 # A data file shorter than the specified used size is corrupted (truncated)
31 31 HEADER = struct.Struct(
32 ">{}s32s32sL{}sB".format(len(V2_FORMAT_MARKER), TREE_METADATA_SIZE)
32 ">{}s32s32s{}sLB".format(len(V2_FORMAT_MARKER), TREE_METADATA_SIZE)
33 33 )
34 34
35 35
@@ -51,7 +51,7 b' class DirstateDocket(object):'
51 51 if not data:
52 52 parents = (nodeconstants.nullid, nodeconstants.nullid)
53 53 return cls(parents, 0, b'', None)
54 marker, p1, p2, data_size, meta, uuid_size = HEADER.unpack_from(data)
54 marker, p1, p2, meta, data_size, uuid_size = HEADER.unpack_from(data)
55 55 if marker != V2_FORMAT_MARKER:
56 56 raise ValueError("expected dirstate-v2 marker")
57 57 uuid = data[HEADER.size : HEADER.size + uuid_size]
@@ -65,8 +65,8 b' class DirstateDocket(object):'
65 65 V2_FORMAT_MARKER,
66 66 p1,
67 67 p2,
68 self.tree_metadata,
68 69 self.data_size,
69 self.tree_metadata,
70 70 len(self.uuid),
71 71 )
72 72 return header + self.uuid
@@ -67,11 +67,11 b' struct DocketHeader {'
67 67 parent_1: [u8; STORED_NODE_ID_BYTES],
68 68 parent_2: [u8; STORED_NODE_ID_BYTES],
69 69
70 metadata: TreeMetadata,
71
70 72 /// Counted in bytes
71 73 data_size: Size,
72 74
73 metadata: TreeMetadata,
74
75 75 uuid_size: u8,
76 76 }
77 77
General Comments 0
You need to be logged in to leave comments. Login now