Mercurial > hg > mercurial-crew-with-dirclash
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 |