279 """ |
279 """ |
280 if common is None: |
280 if common is None: |
281 common = [nullrev] |
281 common = [nullrev] |
282 |
282 |
283 return ancestor.incrementalmissingancestors(self.parentrevs, common) |
283 return ancestor.incrementalmissingancestors(self.parentrevs, common) |
|
284 |
|
285 def findmissingrevs(self, common=None, heads=None): |
|
286 """Return the revision numbers of the ancestors of heads that |
|
287 are not ancestors of common. |
|
288 |
|
289 More specifically, return a list of revision numbers corresponding to |
|
290 nodes N such that every N satisfies the following constraints: |
|
291 |
|
292 1. N is an ancestor of some node in 'heads' |
|
293 2. N is not an ancestor of any node in 'common' |
|
294 |
|
295 The list is sorted by revision number, meaning it is |
|
296 topologically sorted. |
|
297 |
|
298 'heads' and 'common' are both lists of revision numbers. If heads is |
|
299 not supplied, uses all of the revlog's heads. If common is not |
|
300 supplied, uses nullid.""" |
|
301 if common is None: |
|
302 common = [nullrev] |
|
303 if heads is None: |
|
304 heads = self.headrevs() |
|
305 |
|
306 inc = self.incrementalmissingrevs(common=common) |
|
307 return inc.missingancestors(heads) |
284 |
308 |
285 def findmissing(self, common=None, heads=None): |
309 def findmissing(self, common=None, heads=None): |
286 """Return the ancestors of heads that are not ancestors of common. |
310 """Return the ancestors of heads that are not ancestors of common. |
287 |
311 |
288 More specifically, return a list of nodes N such that every N |
312 More specifically, return a list of nodes N such that every N |