mercurial/commands.py
changeset 46798 f51ff655d338
parent 46794 e2f7b2695ba1
child 46808 b26f9560f40d
equal deleted inserted replaced
46797:bcdcb4423ae3 46798:f51ff655d338
  1105                     raise error.Abort(_(b"%s killed") % command)
  1105                     raise error.Abort(_(b"%s killed") % command)
  1106                 else:
  1106                 else:
  1107                     transition = b"bad"
  1107                     transition = b"bad"
  1108                 state[transition].append(node)
  1108                 state[transition].append(node)
  1109                 ctx = repo[node]
  1109                 ctx = repo[node]
  1110                 ui.status(
  1110                 summary = cmdutil.format_changeset_summary(ui, ctx, b'bisect')
  1111                     _(b'changeset %d:%s: %s\n') % (ctx.rev(), ctx, transition)
  1111                 ui.status(_(b'changeset %s: %s\n') % (summary, transition))
  1112                 )
       
  1113                 hbisect.checkstate(state)
  1112                 hbisect.checkstate(state)
  1114                 # bisect
  1113                 # bisect
  1115                 nodes, changesets, bgood = hbisect.bisect(repo, state)
  1114                 nodes, changesets, bgood = hbisect.bisect(repo, state)
  1116                 # update to next check
  1115                 # update to next check
  1117                 node = nodes[0]
  1116                 node = nodes[0]
  1123 
  1122 
  1124     # actually bisect
  1123     # actually bisect
  1125     nodes, changesets, good = hbisect.bisect(repo, state)
  1124     nodes, changesets, good = hbisect.bisect(repo, state)
  1126     if extend:
  1125     if extend:
  1127         if not changesets:
  1126         if not changesets:
  1128             extendnode = hbisect.extendrange(repo, state, nodes, good)
  1127             extendctx = hbisect.extendrange(repo, state, nodes, good)
  1129             if extendnode is not None:
  1128             if extendctx is not None:
  1130                 ui.write(
  1129                 ui.write(
  1131                     _(b"Extending search to changeset %d:%s\n")
  1130                     _(b"Extending search to changeset %s\n")
  1132                     % (extendnode.rev(), extendnode)
  1131                     % cmdutil.format_changeset_summary(ui, extendctx, b'bisect')
  1133                 )
  1132                 )
  1134                 state[b'current'] = [extendnode.node()]
  1133                 state[b'current'] = [extendctx.node()]
  1135                 hbisect.save_state(repo, state)
  1134                 hbisect.save_state(repo, state)
  1136                 return mayupdate(repo, extendnode.node())
  1135                 return mayupdate(repo, extendctx.node())
  1137         raise error.StateError(_(b"nothing to extend"))
  1136         raise error.StateError(_(b"nothing to extend"))
  1138 
  1137 
  1139     if changesets == 0:
  1138     if changesets == 0:
  1140         hbisect.printresult(ui, repo, state, displayer, nodes, good)
  1139         hbisect.printresult(ui, repo, state, displayer, nodes, good)
  1141     else:
  1140     else:
  1144         # compute the approximate number of remaining tests
  1143         # compute the approximate number of remaining tests
  1145         tests, size = 0, 2
  1144         tests, size = 0, 2
  1146         while size <= changesets:
  1145         while size <= changesets:
  1147             tests, size = tests + 1, size * 2
  1146             tests, size = tests + 1, size * 2
  1148         rev = repo.changelog.rev(node)
  1147         rev = repo.changelog.rev(node)
       
  1148         summary = cmdutil.format_changeset_summary(ui, repo[rev], b'bisect')
  1149         ui.write(
  1149         ui.write(
  1150             _(
  1150             _(
  1151                 b"Testing changeset %d:%s "
  1151                 b"Testing changeset %s "
  1152                 b"(%d changesets remaining, ~%d tests)\n"
  1152                 b"(%d changesets remaining, ~%d tests)\n"
  1153             )
  1153             )
  1154             % (rev, short(node), changesets, tests)
  1154             % (summary, changesets, tests)
  1155         )
  1155         )
  1156         state[b'current'] = [node]
  1156         state[b'current'] = [node]
  1157         hbisect.save_state(repo, state)
  1157         hbisect.save_state(repo, state)
  1158         return mayupdate(repo, node)
  1158         return mayupdate(repo, node)
  1159 
  1159