diff -r c6890cfc2253 -r 8f256bf98219 mercurial/commands.py --- a/mercurial/commands.py Tue Jul 15 18:10:37 2008 -0500 +++ b/mercurial/commands.py Sat Aug 02 22:10:10 2008 +0200 @@ -324,12 +324,23 @@ return # actually bisect - node, changesets, good = hbisect.bisect(repo.changelog, state) + nodes, changesets, good = hbisect.bisect(repo.changelog, state) if changesets == 0: - ui.write(_("The first %s revision is:\n") % (good and "good" or "bad")) displayer = cmdutil.show_changeset(ui, repo, {}) - displayer.show(changenode=node) - elif node is not None: + transition = (good and "good" or "bad") + if len(nodes) == 1: + # narrowed it down to a single revision + ui.write(_("The first %s revision is:\n") % transition) + displayer.show(changenode=nodes[0]) + else: + # multiple possible revisions + ui.write(_("Due to skipped revisions, the first " + "%s revision could be any of:\n") % transition) + for n in nodes: + displayer.show(changenode=n) + else: + assert len(nodes) == 1 # only a single node can be tested next + node = nodes[0] # compute the approximate number of remaining tests tests, size = 0, 2 while size <= changesets: