comparison mercurial/dirstate.py @ 4949:fc61495ea9cf

dirstate: make wjoin function private
author Matt Mackall <mpm@selenic.com>
date Sat, 21 Jul 2007 16:02:09 -0500
parents 6fd953d5faea
children 30847b8af7ca
comparison
equal deleted inserted replaced
4948:6fd953d5faea 4949:fc61495ea9cf
50 self._dirs = {} 50 self._dirs = {}
51 for f in self._map: 51 for f in self._map:
52 self._incpath(f) 52 self._incpath(f)
53 return self._dirs 53 return self._dirs
54 elif name == '_ignore': 54 elif name == '_ignore':
55 files = [self.wjoin('.hgignore')] 55 files = [self._join('.hgignore')]
56 for name, path in self._ui.configitems("ui"): 56 for name, path in self._ui.configitems("ui"):
57 if name == 'ignore' or name.startswith('ignore.'): 57 if name == 'ignore' or name.startswith('ignore.'):
58 files.append(os.path.expanduser(path)) 58 files.append(os.path.expanduser(path))
59 self._ignore = ignore.ignore(self._root, files, self._ui.warn) 59 self._ignore = ignore.ignore(self._root, files, self._ui.warn)
60 return self._ignore 60 return self._ignore
62 self._slash = self._ui.configbool('ui', 'slash') and os.sep != '/' 62 self._slash = self._ui.configbool('ui', 'slash') and os.sep != '/'
63 return self._slash 63 return self._slash
64 else: 64 else:
65 raise AttributeError, name 65 raise AttributeError, name
66 66
67 def wjoin(self, f): 67 def _join(self, f):
68 return os.path.join(self._root, f) 68 return os.path.join(self._root, f)
69 69
70 def getcwd(self): 70 def getcwd(self):
71 cwd = os.getcwd() 71 cwd = os.getcwd()
72 if cwd == self._root: return '' 72 if cwd == self._root: return ''
203 self._incpath(f) 203 self._incpath(f)
204 204
205 def normal(self, f): 205 def normal(self, f):
206 'mark a file normal' 206 'mark a file normal'
207 self._dirty = True 207 self._dirty = True
208 s = os.lstat(self.wjoin(f)) 208 s = os.lstat(self._join(f))
209 self._map[f] = ('n', s.st_mode, s.st_size, s.st_mtime) 209 self._map[f] = ('n', s.st_mode, s.st_size, s.st_mtime)
210 if self._copymap.has_key(f): 210 if self._copymap.has_key(f):
211 del self._copymap[f] 211 del self._copymap[f]
212 212
213 def normaldirty(self, f): 213 def normaldirty(self, f):
214 'mark a file normal, but possibly dirty' 214 'mark a file normal, but possibly dirty'
215 self._dirty = True 215 self._dirty = True
216 s = os.lstat(self.wjoin(f)) 216 s = os.lstat(self._join(f))
217 self._map[f] = ('n', s.st_mode, -1, -1) 217 self._map[f] = ('n', s.st_mode, -1, -1)
218 if f in self._copymap: 218 if f in self._copymap:
219 del self._copymap[f] 219 del self._copymap[f]
220 220
221 def add(self, f): 221 def add(self, f):
222 'mark a file added' 222 'mark a file added'
223 self._dirty = True 223 self._dirty = True
224 self._incpathcheck(f) 224 self._incpathcheck(f)
225 s = os.lstat(self.wjoin(f)) 225 s = os.lstat(self._join(f))
226 self._map[f] = ('a', s.st_mode, s.st_size, s.st_mtime) 226 self._map[f] = ('a', s.st_mode, s.st_size, s.st_mtime)
227 if f in self._copymap: 227 if f in self._copymap:
228 del self._copymap[f] 228 del self._copymap[f]
229 229
230 def remove(self, f): 230 def remove(self, f):
236 del self._copymap[f] 236 del self._copymap[f]
237 237
238 def merge(self, f): 238 def merge(self, f):
239 'mark a file merged' 239 'mark a file merged'
240 self._dirty = True 240 self._dirty = True
241 s = os.lstat(self.wjoin(f)) 241 s = os.lstat(self._join(f))
242 self._map[f] = ('m', s.st_mode, s.st_size, s.st_mtime) 242 self._map[f] = ('m', s.st_mode, s.st_size, s.st_mtime)
243 if f in self._copymap: 243 if f in self._copymap:
244 del self._copymap[f] 244 del self._copymap[f]
245 245
246 def forget(self, f): 246 def forget(self, f):
414 414
415 # step one, find all files that match our criteria 415 # step one, find all files that match our criteria
416 files.sort() 416 files.sort()
417 for ff in files: 417 for ff in files:
418 nf = util.normpath(ff) 418 nf = util.normpath(ff)
419 f = self.wjoin(ff) 419 f = self._join(ff)
420 try: 420 try:
421 st = os.lstat(f) 421 st = os.lstat(f)
422 except OSError, inst: 422 except OSError, inst:
423 found = False 423 found = False
424 for fn in dc: 424 for fn in dc:
469 continue 469 continue
470 if src == 'm': 470 if src == 'm':
471 nonexistent = True 471 nonexistent = True
472 if not st: 472 if not st:
473 try: 473 try:
474 st = os.lstat(self.wjoin(fn)) 474 st = os.lstat(self._join(fn))
475 except OSError, inst: 475 except OSError, inst:
476 if inst.errno != errno.ENOENT: 476 if inst.errno != errno.ENOENT:
477 raise 477 raise
478 st = None 478 st = None
479 # We need to re-check that it is a valid file 479 # We need to re-check that it is a valid file
485 deleted.append(fn) 485 deleted.append(fn)
486 continue 486 continue
487 # check the common case first 487 # check the common case first
488 if type_ == 'n': 488 if type_ == 'n':
489 if not st: 489 if not st:
490 st = os.lstat(self.wjoin(fn)) 490 st = os.lstat(self._join(fn))
491 if (size >= 0 and (size != st.st_size 491 if (size >= 0 and (size != st.st_size
492 or (mode ^ st.st_mode) & 0100) 492 or (mode ^ st.st_mode) & 0100)
493 or fn in self._copymap): 493 or fn in self._copymap):
494 modified.append(fn) 494 modified.append(fn)
495 elif time != int(st.st_mtime): 495 elif time != int(st.st_mtime):