mercurial/revlog.py
changeset 13741 b51bf961b3cb
parent 13400 14f3795a5ed7
child 13768 10aea25fb519
equal deleted inserted replaced
13740:dcb51f156fa6 13741:b51bf961b3cb
   397                 if x != nullrev and x in seen:
   397                 if x != nullrev and x in seen:
   398                     seen.add(i)
   398                     seen.add(i)
   399                     yield i
   399                     yield i
   400                     break
   400                     break
   401 
   401 
   402     def findmissing(self, common=None, heads=None):
   402     def findcommonmissing(self, common=None, heads=None):
   403         """Return the ancestors of heads that are not ancestors of common.
   403         """Return a tuple of the ancestors of common and the ancestors of heads
   404 
   404         that are not ancestors of common.
   405         More specifically, return a list of nodes N such that every N
   405 
   406         satisfies the following constraints:
   406         More specifically, the second element is a list of nodes N such that
       
   407         every N satisfies the following constraints:
   407 
   408 
   408           1. N is an ancestor of some node in 'heads'
   409           1. N is an ancestor of some node in 'heads'
   409           2. N is not an ancestor of any node in 'common'
   410           2. N is not an ancestor of any node in 'common'
   410 
   411 
   411         The list is sorted by revision number, meaning it is
   412         The list is sorted by revision number, meaning it is
   439                 for p in self.parentrevs(r):
   440                 for p in self.parentrevs(r):
   440                     if p not in has:
   441                     if p not in has:
   441                         visit.append(p)
   442                         visit.append(p)
   442         missing = list(missing)
   443         missing = list(missing)
   443         missing.sort()
   444         missing.sort()
   444         return [self.node(r) for r in missing]
   445         return has, [self.node(r) for r in missing]
       
   446 
       
   447     def findmissing(self, common=None, heads=None):
       
   448         """Return the ancestors of heads that are not ancestors of common.
       
   449 
       
   450         More specifically, return a list of nodes N such that every N
       
   451         satisfies the following constraints:
       
   452 
       
   453           1. N is an ancestor of some node in 'heads'
       
   454           2. N is not an ancestor of any node in 'common'
       
   455 
       
   456         The list is sorted by revision number, meaning it is
       
   457         topologically sorted.
       
   458 
       
   459         'heads' and 'common' are both lists of node IDs.  If heads is
       
   460         not supplied, uses all of the revlog's heads.  If common is not
       
   461         supplied, uses nullid."""
       
   462         _common, missing = self.findcommonmissing(common, heads)
       
   463         return missing
   445 
   464 
   446     def nodesbetween(self, roots=None, heads=None):
   465     def nodesbetween(self, roots=None, heads=None):
   447         """Return a topological path from 'roots' to 'heads'.
   466         """Return a topological path from 'roots' to 'heads'.
   448 
   467 
   449         Return a tuple (nodes, outroots, outheads) where 'nodes' is a
   468         Return a tuple (nodes, outroots, outheads) where 'nodes' is a