mercurial/commands.py
changeset 9584 17da88da1abd
parent 9569 ceb0f59e1327
child 9603 220d39af2e57
equal deleted inserted replaced
9583:0491be4448bf 9584:17da88da1abd
   338         return
   338         return
   339 
   339 
   340     state = hbisect.load_state(repo)
   340     state = hbisect.load_state(repo)
   341 
   341 
   342     if command:
   342     if command:
   343         commandpath = util.find_exe(command)
       
   344         if commandpath is None:
       
   345             raise util.Abort(_("cannot find executable: %s") % command)
       
   346         changesets = 1
   343         changesets = 1
   347         try:
   344         try:
   348             while changesets:
   345             while changesets:
   349                 # update state
   346                 # update state
   350                 status = subprocess.call([commandpath])
   347                 status = util.system(command)
   351                 if status == 125:
   348                 if status == 125:
   352                     transition = "skip"
   349                     transition = "skip"
   353                 elif status == 0:
   350                 elif status == 0:
   354                     transition = "good"
   351                     transition = "good"
   355                 # status < 0 means process was killed
   352                 # status < 0 means process was killed
   368                 # update to next check
   365                 # update to next check
   369                 cmdutil.bail_if_changed(repo)
   366                 cmdutil.bail_if_changed(repo)
   370                 hg.clean(repo, nodes[0], show_stats=False)
   367                 hg.clean(repo, nodes[0], show_stats=False)
   371         finally:
   368         finally:
   372             hbisect.save_state(repo, state)
   369             hbisect.save_state(repo, state)
   373         return print_result(nodes, not status)
   370         return print_result(nodes, good)
   374 
   371 
   375     # update state
   372     # update state
   376     node = repo.lookup(rev or '.')
   373     node = repo.lookup(rev or '.')
   377     if good:
   374     if good:
   378         state['good'].append(node)
   375         state['good'].append(node)