equal
deleted
inserted
replaced
254 if r: |
254 if r: |
255 pl[0] = (r[0], getlog(r[0]).rev(r[1])) |
255 pl[0] = (r[0], getlog(r[0]).rev(r[1])) |
256 |
256 |
257 return [ getctx(p, n) for p, n in pl if n != -1 ] |
257 return [ getctx(p, n) for p, n in pl if n != -1 ] |
258 |
258 |
|
259 # use linkrev to find the first changeset where self appeared |
|
260 if self.rev() != self._filelog.linkrev(self._filenode): |
|
261 base = self.filectx(self.filerev()) |
|
262 else: |
|
263 base = self |
|
264 |
259 # find all ancestors |
265 # find all ancestors |
260 needed = {self: 1} |
266 needed = {base: 1} |
261 visit = [self] |
267 visit = [base] |
262 files = [self._path] |
268 files = [base._path] |
263 while visit: |
269 while visit: |
264 f = visit.pop(0) |
270 f = visit.pop(0) |
265 for p in parents(f): |
271 for p in parents(f): |
266 if p not in needed: |
272 if p not in needed: |
267 needed[p] = 1 |
273 needed[p] = 1 |