comparison mercurial/hg.py @ 67:a182f2561c8e

Add tag support
author mpm@selenic.com
date Fri, 13 May 2005 13:12:32 -0800
parents d40cc5aacc31
children 85f1f87dc8ff
comparison
equal deleted inserted replaced
66:5ec8b2ed858f 67:a182f2561c8e
256 256
257 self.opener = opener(self.path) 257 self.opener = opener(self.path)
258 self.manifest = manifest(self.opener) 258 self.manifest = manifest(self.opener)
259 self.changelog = changelog(self.opener) 259 self.changelog = changelog(self.opener)
260 self.ignorelist = None 260 self.ignorelist = None
261 self.tags = None
261 262
262 if not self.remote: 263 if not self.remote:
263 self.dircache = dircache(self.opener, ui) 264 self.dircache = dircache(self.opener, ui)
264 try: 265 try:
265 self.current = bin(self.opener("current").read()) 266 self.current = bin(self.opener("current").read())
272 273
273 def ignore(self, f): 274 def ignore(self, f):
274 if self.ignorelist is None: 275 if self.ignorelist is None:
275 self.ignorelist = [] 276 self.ignorelist = []
276 try: 277 try:
277 l = open(os.path.join(self.root, ".hgignore")).readlines() 278 l = open(os.path.join(self.root, ".hgignore"))
278 for pat in l: 279 for pat in l:
279 if pat != "\n": 280 if pat != "\n":
280 self.ignorelist.append(re.compile(pat[:-1])) 281 self.ignorelist.append(re.compile(pat[:-1]))
281 except IOError: pass 282 except IOError: pass
282 for pat in self.ignorelist: 283 for pat in self.ignorelist:
283 if pat.search(f): return True 284 if pat.search(f): return True
284 return False 285 return False
286
287 def lookup(self, key):
288 if self.tags is None:
289 self.tags = {}
290 try:
291 fl = self.file(".hgtags")
292 for l in fl.revision(fl.tip()).splitlines():
293 if l:
294 n, k = l.split(" ")
295 self.tags[k] = bin(n)
296 except KeyError: pass
297 try:
298 return self.tags[key]
299 except KeyError:
300 return self.changelog.lookup(key)
285 301
286 def join(self, f): 302 def join(self, f):
287 return os.path.join(self.path, f) 303 return os.path.join(self.path, f)
288 304
289 def file(self, f): 305 def file(self, f):