comparison mercurial/context.py @ 3334:e44eadc92ec4

context: check self.__dict__ instead of using hasattr hasattr implicitly calls getattr, instantiating the field it is checking for.
author Brendan Cully <brendan@kublai.com>
date Wed, 11 Oct 2006 13:34:12 -0700
parents 6c68bc1e7873
children b02e60097bbe
comparison
equal deleted inserted replaced
3333:9061613c1593 3334:e44eadc92ec4
70 """return contexts for each child changeset""" 70 """return contexts for each child changeset"""
71 c = self._repo.changelog.children(self._node) 71 c = self._repo.changelog.children(self._node)
72 return [ changectx(self._repo, x) for x in c ] 72 return [ changectx(self._repo, x) for x in c ]
73 73
74 def filenode(self, path): 74 def filenode(self, path):
75 if hasattr(self, "_manifest"): 75 if '_manifest' in self.__dict__:
76 try: 76 try:
77 return self._manifest[path] 77 return self._manifest[path]
78 except KeyError: 78 except KeyError:
79 raise repo.LookupError(_("'%s' not found in manifest") % path) 79 raise repo.LookupError(_("'%s' not found in manifest") % path)
80 node, flag = self._repo.manifest.find(self._changeset[0], path) 80 node, flag = self._repo.manifest.find(self._changeset[0], path)
138 elif name == '_changeid': 138 elif name == '_changeid':
139 self._changeid = self._filelog.linkrev(self._filenode) 139 self._changeid = self._filelog.linkrev(self._filenode)
140 return self._changeid 140 return self._changeid
141 elif name == '_filenode': 141 elif name == '_filenode':
142 try: 142 try:
143 if hasattr(self, "_fileid"): 143 if '_fileid' in self.__dict__:
144 self._filenode = self._filelog.lookup(self._fileid) 144 self._filenode = self._filelog.lookup(self._fileid)
145 else: 145 else:
146 self._filenode = self._changectx.filenode(self._path) 146 self._filenode = self._changectx.filenode(self._path)
147 except revlog.RevlogError, inst: 147 except revlog.RevlogError, inst:
148 raise repo.LookupError(str(inst)) 148 raise repo.LookupError(str(inst))
174 def filerev(self): return self._filerev 174 def filerev(self): return self._filerev
175 def filenode(self): return self._filenode 175 def filenode(self): return self._filenode
176 def filelog(self): return self._filelog 176 def filelog(self): return self._filelog
177 177
178 def rev(self): 178 def rev(self):
179 if hasattr(self, "_changectx"): 179 if '_changectx' in self.__dict__:
180 return self._changectx.rev() 180 return self._changectx.rev()
181 return self._filelog.linkrev(self._filenode) 181 return self._filelog.linkrev(self._filenode)
182 182
183 def node(self): return self._changectx.node() 183 def node(self): return self._changectx.node()
184 def user(self): return self._changectx.user() 184 def user(self): return self._changectx.user()
437 opening a new filelog''' 437 opening a new filelog'''
438 return filectx(self._repo, self._repopath, fileid=fileid, 438 return filectx(self._repo, self._repopath, fileid=fileid,
439 filelog=self._filelog) 439 filelog=self._filelog)
440 440
441 def rev(self): 441 def rev(self):
442 if hasattr(self, "_changectx"): 442 if '_changectx' in self.__dict__:
443 return self._changectx.rev() 443 return self._changectx.rev()
444 return self._filelog.linkrev(self._filenode) 444 return self._filelog.linkrev(self._filenode)
445 445
446 def data(self): return self._repo.wread(self._path) 446 def data(self): return self._repo.wread(self._path)
447 def renamed(self): 447 def renamed(self):