hgext/convert/subversion.py
changeset 5382 d7d395fb7cd5
parent 5373 6aba1835a7b3
child 5415 1d53a75ea0fc
equal deleted inserted replaced
5381:6874368120dc 5382:d7d395fb7cd5
   144             pass
   144             pass
   145 
   145 
   146         self.last_changed = self.latest(self.module, latest)
   146         self.last_changed = self.latest(self.module, latest)
   147 
   147 
   148         self.head = self.revid(self.last_changed)
   148         self.head = self.revid(self.last_changed)
       
   149         self._changescache = None
   149 
   150 
   150     def setrevmap(self, revmap, order):
   151     def setrevmap(self, revmap, order):
   151         lastrevs = {}
   152         lastrevs = {}
   152         for revid in revmap.keys():
   153         for revid in revmap.keys():
   153             uuid, module, revnum = self.revsplit(revid)
   154             uuid, module, revnum = self.revsplit(revid)
   204 
   205 
   205     def getmode(self, file, rev):
   206     def getmode(self, file, rev):
   206         return self.modecache[(file, rev)]
   207         return self.modecache[(file, rev)]
   207 
   208 
   208     def getchanges(self, rev):
   209     def getchanges(self, rev):
       
   210         if self._changescache and self._changescache[0] == rev:
       
   211             return self._changescache[1]
       
   212         self._changescache = None
   209         self.modecache = {}
   213         self.modecache = {}
   210         (paths, parents) = self.paths[rev]
   214         (paths, parents) = self.paths[rev]
   211         files, copies = self.expandpaths(rev, paths, parents)
   215         files, copies = self.expandpaths(rev, paths, parents)
   212         files.sort()
   216         files.sort()
   213         files = zip(files, [rev] * len(files))
   217         files = zip(files, [rev] * len(files))
   214 
   218 
   215         # caller caches the result, so free it here to release memory
   219         # caller caches the result, so free it here to release memory
   216         del self.paths[rev]
   220         del self.paths[rev]
   217         return (files, copies)
   221         return (files, copies)
       
   222 
       
   223     def getchangedfiles(self, rev, i):
       
   224         changes = self.getchanges(rev)
       
   225         self._changescache = (rev, changes)
       
   226         return [f[0] for f in changes[0]]
   218 
   227 
   219     def getcommit(self, rev):
   228     def getcommit(self, rev):
   220         if rev not in self.commits:
   229         if rev not in self.commits:
   221             uuid, module, revnum = self.revsplit(rev)
   230             uuid, module, revnum = self.revsplit(rev)
   222             self.module = module
   231             self.module = module