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 |