hgext/obsolete.py
changeset 87 246b8fefd0a5
parent 86 7f763bada042
child 89 757153438e58
equal deleted inserted replaced
86:7f763bada042 87:246b8fefd0a5
   280         subnode = bin(subhex)
   280         subnode = bin(subhex)
   281         if subnode == nullid:
   281         if subnode == nullid:
   282             subnode = None
   282             subnode = None
   283         rels.setdefault( subnode, set()).add(bin(objhex))
   283         rels.setdefault( subnode, set()).add(bin(objhex))
   284     return rels
   284     return rels
       
   285 
       
   286 ### diagnostique tools
       
   287 #############################
       
   288 
       
   289 def unstables(repo):
       
   290     """Return all unstable changeset"""
       
   291     return scmutil.revrange(repo, ['obsolete():: and (not obsolete())'])
       
   292 
       
   293 def newerversion(repo, obs):
       
   294     """Return the newer version of an obsolete changeset"""
       
   295     toproceed = set([obs])
       
   296     # XXX know optimization available
       
   297     newer = set()
       
   298     while toproceed:
       
   299         current = toproceed.pop()
       
   300         if current in repo._obsobjrels:
       
   301             toproceed.update(repo._obsobjrels[current])
       
   302         elif current is not None: # None is kill
       
   303             newer.add(current)
       
   304     return sorted(newer)
       
   305 
   285 
   306 
   286 ### repo subclassing
   307 ### repo subclassing
   287 #############################
   308 #############################
   288 
   309 
   289 def reposetup(ui, repo):
   310 def reposetup(ui, repo):