mercurial/context.py
changeset 5811 180a3eee4b75
parent 5810 124577de40a7
child 5813 3ef279074c77
equal deleted inserted replaced
5810:124577de40a7 5811:180a3eee4b75
   233             return self._changectx.rev()
   233             return self._changectx.rev()
   234         if '_changeid' in self.__dict__:
   234         if '_changeid' in self.__dict__:
   235             return self._changectx.rev() 
   235             return self._changectx.rev() 
   236         return self._filelog.linkrev(self._filenode)
   236         return self._filelog.linkrev(self._filenode)
   237 
   237 
       
   238     def linkrev(self): return self._filelog.linkrev(self._filenode)
   238     def node(self): return self._changectx.node()
   239     def node(self): return self._changectx.node()
   239     def user(self): return self._changectx.user()
   240     def user(self): return self._changectx.user()
   240     def date(self): return self._changectx.date()
   241     def date(self): return self._changectx.date()
   241     def files(self): return self._changectx.files()
   242     def files(self): return self._changectx.files()
   242     def description(self): return self._changectx.description()
   243     def description(self): return self._changectx.description()
   243     def branch(self): return self._changectx.branch()
   244     def branch(self): return self._changectx.branch()
   244     def manifest(self): return self._changectx.manifest()
   245     def manifest(self): return self._changectx.manifest()
   245     def changectx(self): return self._changectx
   246     def changectx(self): return self._changectx
   246 
   247 
   247     def data(self): return self._filelog.read(self._filenode)
   248     def data(self): return self._filelog.read(self._filenode)
   248     def renamed(self): return self._filelog.renamed(self._filenode)
       
   249     def path(self): return self._path
   249     def path(self): return self._path
   250     def size(self): return self._filelog.size(self._filerev)
   250     def size(self): return self._filelog.size(self._filerev)
   251 
   251 
   252     def cmp(self, text): return self._filelog.cmp(self._filenode, text)
   252     def cmp(self, text): return self._filelog.cmp(self._filenode, text)
       
   253 
       
   254     def renamed(self):
       
   255         """check if file was actually renamed in this changeset revision
       
   256 
       
   257         If rename logged in file revision, we report copy for changeset only
       
   258         if file revisions linkrev points back to the changeset in question
       
   259         or both changeset parents contain different file revisions.
       
   260         """
       
   261 
       
   262         renamed = self._filelog.renamed(self._filenode)
       
   263         if not renamed:
       
   264             return renamed
       
   265 
       
   266         if self.rev() == self.linkrev():
       
   267             return renamed
       
   268 
       
   269         name = self.path()
       
   270         fnode = self._filenode
       
   271         for p in self._changectx.parents():
       
   272             try:
       
   273                 if fnode == p.filenode(name):
       
   274                     return None
       
   275             except revlog.LookupError:
       
   276                 pass
       
   277         return renamed
   253 
   278 
   254     def parents(self):
   279     def parents(self):
   255         p = self._path
   280         p = self._path
   256         fl = self._filelog
   281         fl = self._filelog
   257         pl = [(p, n, fl) for n in self._filelog.parents(self._filenode)]
   282         pl = [(p, n, fl) for n in self._filelog.parents(self._filenode)]
   320                     pl[0] = (r[0], getlog(r[0]).rev(r[1]))
   345                     pl[0] = (r[0], getlog(r[0]).rev(r[1]))
   321 
   346 
   322             return [getctx(p, n) for p, n in pl if n != nullrev]
   347             return [getctx(p, n) for p, n in pl if n != nullrev]
   323 
   348 
   324         # use linkrev to find the first changeset where self appeared
   349         # use linkrev to find the first changeset where self appeared
   325         if self.rev() != self._filelog.linkrev(self._filenode):
   350         if self.rev() != self.linkrev():
   326             base = self.filectx(self.filerev())
   351             base = self.filectx(self.filerev())
   327         else:
   352         else:
   328             base = self
   353             base = self
   329 
   354 
   330         # find all ancestors
   355         # find all ancestors