##// END OF EJS Templates
dirstate: refactor the dirstate binary format, remove magic numbers
Benoit Boissinot -
r2393:5083cba2 default
parent child Browse files
Show More
@@ -14,6 +14,8 b' from demandload import *'
14 14 demandload(globals(), "time bisect stat util re errno")
15 15
16 16 class dirstate(object):
17 format = ">cllll"
18
17 19 def __init__(self, opener, ui, root):
18 20 self.opener = opener
19 21 self.root = root
@@ -164,10 +166,11 b' class dirstate(object):'
164 166 self.pl = [st[:20], st[20: 40]]
165 167
166 168 pos = 40
169 e_size = struct.calcsize(self.format)
167 170 while pos < len(st):
168 e = struct.unpack(">cllll", st[pos:pos+17])
171 e = struct.unpack(self.format, st[pos:pos+e_size])
169 172 l = e[4]
170 pos += 17
173 pos += e_size
171 174 f = st[pos:pos + l]
172 175 if '\0' in f:
173 176 f, c = f.split('\0')
@@ -241,7 +244,7 b' class dirstate(object):'
241 244 c = self.copied(f)
242 245 if c:
243 246 f = f + "\0" + c
244 e = struct.pack(">cllll", e[0], e[1], e[2], e[3], len(f))
247 e = struct.pack(self.format, e[0], e[1], e[2], e[3], len(f))
245 248 st.write(e + f)
246 249 self.dirty = 0
247 250
General Comments 0
You need to be logged in to leave comments. Login now