mercurial/hbisect.py
changeset 30066 5f93737d0ba8
parent 30065 ee21ed7fc7a2
child 30067 6e88cd060ba2
equal deleted inserted replaced
30065:ee21ed7fc7a2 30066:5f93737d0ba8
   137     assert best_rev is not None
   137     assert best_rev is not None
   138     best_node = changelog.node(best_rev)
   138     best_node = changelog.node(best_rev)
   139 
   139 
   140     return ([best_node], tot, good)
   140     return ([best_node], tot, good)
   141 
   141 
       
   142 def extendrange(repo, state, nodes, good):
       
   143     # bisect is incomplete when it ends on a merge node and
       
   144     # one of the parent was not checked.
       
   145     parents = repo[nodes[0]].parents()
       
   146     if len(parents) > 1:
       
   147         if good:
       
   148             side = state['bad']
       
   149         else:
       
   150             side = state['good']
       
   151         num = len(set(i.node() for i in parents) & set(side))
       
   152         if num == 1:
       
   153             return parents[0].ancestor(parents[1])
       
   154     return None
   142 
   155 
   143 def load_state(repo):
   156 def load_state(repo):
   144     state = {'current': [], 'good': [], 'bad': [], 'skip': []}
   157     state = {'current': [], 'good': [], 'bad': [], 'skip': []}
   145     for l in repo.vfs.tryreadlines("bisect.state"):
   158     for l in repo.vfs.tryreadlines("bisect.state"):
   146         kind, node = l[:-1].split()
   159         kind, node = l[:-1].split()