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 |
">{}s32s32s |
|
|
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, |
|
|
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 |
General Comments 0
You need to be logged in to leave comments.
Login now