comparison mercurial/dirstate.py @ 2425:be2fd6398d50

dirstate: speed up inner loop of read.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Mon, 12 Jun 2006 09:36:23 -0700
parents 5083cba2a777
children 150cde10ea21
comparison
equal deleted inserted replaced
2422:6aa75e77cafe 2425:be2fd6398d50
166 self.pl = [st[:20], st[20: 40]] 166 self.pl = [st[:20], st[20: 40]]
167 167
168 pos = 40 168 pos = 40
169 e_size = struct.calcsize(self.format) 169 e_size = struct.calcsize(self.format)
170 while pos < len(st): 170 while pos < len(st):
171 e = struct.unpack(self.format, st[pos:pos+e_size]) 171 newpos = pos + e_size
172 e = struct.unpack(self.format, st[pos:newpos])
172 l = e[4] 173 l = e[4]
173 pos += e_size 174 pos = newpos
174 f = st[pos:pos + l] 175 newpos = pos + l
176 f = st[pos:newpos]
175 if '\0' in f: 177 if '\0' in f:
176 f, c = f.split('\0') 178 f, c = f.split('\0')
177 self.copies[f] = c 179 self.copies[f] = c
178 self.map[f] = e[:4] 180 self.map[f] = e[:4]
179 pos += l 181 pos = newpos
180 182
181 def copy(self, source, dest): 183 def copy(self, source, dest):
182 self.lazyread() 184 self.lazyread()
183 self.markdirty() 185 self.markdirty()
184 self.copies[dest] = source 186 self.copies[dest] = source