Mercurial > hg
comparison mercurial/dirstate.py @ 3154:b1f10d3223c1
dirstate: add copies function
rename copies to copymap
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 25 Sep 2006 17:53:17 -0500 |
parents | 882e703eaa94 |
children | 53e843840349 |
comparison
equal
deleted
inserted
replaced
3153:c82ea81d6850 | 3154:b1f10d3223c1 |
---|---|
21 self.dirty = 0 | 21 self.dirty = 0 |
22 self.ui = ui | 22 self.ui = ui |
23 self.map = None | 23 self.map = None |
24 self.pl = None | 24 self.pl = None |
25 self.dirs = None | 25 self.dirs = None |
26 self.copies = {} | 26 self.copymap = {} |
27 self.ignorefunc = None | 27 self.ignorefunc = None |
28 self.blockignore = False | 28 self.blockignore = False |
29 | 29 |
30 def wjoin(self, f): | 30 def wjoin(self, f): |
31 return os.path.join(self.root, f) | 31 return os.path.join(self.root, f) |
158 def parse(self, st): | 158 def parse(self, st): |
159 self.pl = [st[:20], st[20: 40]] | 159 self.pl = [st[:20], st[20: 40]] |
160 | 160 |
161 # deref fields so they will be local in loop | 161 # deref fields so they will be local in loop |
162 map = self.map | 162 map = self.map |
163 copies = self.copies | 163 copymap = self.copymap |
164 format = self.format | 164 format = self.format |
165 unpack = struct.unpack | 165 unpack = struct.unpack |
166 | 166 |
167 pos = 40 | 167 pos = 40 |
168 e_size = struct.calcsize(format) | 168 e_size = struct.calcsize(format) |
174 pos = newpos | 174 pos = newpos |
175 newpos = pos + l | 175 newpos = pos + l |
176 f = st[pos:newpos] | 176 f = st[pos:newpos] |
177 if '\0' in f: | 177 if '\0' in f: |
178 f, c = f.split('\0') | 178 f, c = f.split('\0') |
179 copies[f] = c | 179 copymap[f] = c |
180 map[f] = e[:4] | 180 map[f] = e[:4] |
181 pos = newpos | 181 pos = newpos |
182 | 182 |
183 def read(self): | 183 def read(self): |
184 self.map = {} | 184 self.map = {} |
191 if err.errno != errno.ENOENT: raise | 191 if err.errno != errno.ENOENT: raise |
192 | 192 |
193 def copy(self, source, dest): | 193 def copy(self, source, dest): |
194 self.lazyread() | 194 self.lazyread() |
195 self.markdirty() | 195 self.markdirty() |
196 self.copies[dest] = source | 196 self.copymap[dest] = source |
197 | 197 |
198 def copied(self, file): | 198 def copied(self, file): |
199 return self.copies.get(file, None) | 199 return self.copymap.get(file, None) |
200 | |
201 def copies(self): | |
202 return self.copymap | |
200 | 203 |
201 def initdirs(self): | 204 def initdirs(self): |
202 if self.dirs is None: | 205 if self.dirs is None: |
203 self.dirs = {} | 206 self.dirs = {} |
204 for f in self.map: | 207 for f in self.map: |
252 self.updatedirs(f, 1) | 255 self.updatedirs(f, 1) |
253 s = os.lstat(self.wjoin(f)) | 256 s = os.lstat(self.wjoin(f)) |
254 st_size = kw.get('st_size', s.st_size) | 257 st_size = kw.get('st_size', s.st_size) |
255 st_mtime = kw.get('st_mtime', s.st_mtime) | 258 st_mtime = kw.get('st_mtime', s.st_mtime) |
256 self.map[f] = (state, s.st_mode, st_size, st_mtime) | 259 self.map[f] = (state, s.st_mode, st_size, st_mtime) |
257 if self.copies.has_key(f): | 260 if self.copymap.has_key(f): |
258 del self.copies[f] | 261 del self.copymap[f] |
259 | 262 |
260 def forget(self, files): | 263 def forget(self, files): |
261 if not files: return | 264 if not files: return |
262 self.lazyread() | 265 self.lazyread() |
263 self.markdirty() | 266 self.markdirty() |
270 self.ui.warn(_("not in dirstate: %s!\n") % f) | 273 self.ui.warn(_("not in dirstate: %s!\n") % f) |
271 pass | 274 pass |
272 | 275 |
273 def clear(self): | 276 def clear(self): |
274 self.map = {} | 277 self.map = {} |
275 self.copies = {} | 278 self.copymap = {} |
276 self.dirs = None | 279 self.dirs = None |
277 self.markdirty() | 280 self.markdirty() |
278 | 281 |
279 def rebuild(self, parent, files): | 282 def rebuild(self, parent, files): |
280 self.clear() | 283 self.clear() |