# HG changeset patch # User Siddharth Agarwal # Date 1416127188 28800 # Node ID 3a8a763f41970651b0c6c5212eb91c1a07d4d397 # Parent 4178ad511edf718411c60cb1bc8d316e2e429986 revlog: add a method to get missing revs incrementally This will turn out to be useful for discovery. diff -r 4178ad511edf -r 3a8a763f4197 mercurial/revlog.py --- a/mercurial/revlog.py Sat Nov 15 19:26:20 2014 -0800 +++ b/mercurial/revlog.py Sun Nov 16 00:39:48 2014 -0800 @@ -495,6 +495,20 @@ missing.sort() return has, [self.node(r) for r in missing] + def incrementalmissingrevs(self, common=None): + """Return an object that can be used to incrementally compute the + revision numbers of the ancestors of arbitrary sets that are not + ancestors of common. This is an ancestor.incrementalmissingancestors + object. + + 'common' is a list of revision numbers. If common is not supplied, uses + nullrev. + """ + if common is None: + common = [nullrev] + + return ancestor.incrementalmissingancestors(self.parentrevs, common) + def findmissingrevs(self, common=None, heads=None): """Return the revision numbers of the ancestors of heads that are not ancestors of common.