# HG changeset patch # User Matt Mackall # Date 1244934531 18000 # Node ID 14a0bdd59848859ed879c2702b2f0c4d611a8db5 # Parent 28eaf6f8abcee789e6aa15c1d81d870031232ee2# Parent 2726a6df11e9495106e9889bb32db6ace956608e Merge with crew diff -r 28eaf6f8abce -r 14a0bdd59848 mercurial/commands.py --- a/mercurial/commands.py Sat Jun 13 18:01:48 2009 -0500 +++ b/mercurial/commands.py Sat Jun 13 18:08:51 2009 -0500 @@ -339,6 +339,8 @@ if command: commandpath = util.find_exe(command) + if commandpath is None: + raise util.Abort(_("cannot find executable: %s") % command) changesets = 1 try: while changesets: @@ -355,9 +357,9 @@ raise util.Abort(_("%s killed") % command) else: transition = "bad" - node = repo.lookup(rev or '.') - state[transition].append(node) - ui.note(_('Changeset %s: %s\n') % (short(node), transition)) + ctx = repo[rev or '.'] + state[transition].append(ctx.node()) + ui.status(_('Changeset %d:%s: %s\n') % (ctx, ctx, transition)) check_state(state, interactive=False) # bisect nodes, changesets, good = hbisect.bisect(repo.changelog, state) diff -r 28eaf6f8abce -r 14a0bdd59848 mercurial/dirstate.py --- a/mercurial/dirstate.py Sat Jun 13 18:01:48 2009 -0500 +++ b/mercurial/dirstate.py Sat Jun 13 18:08:51 2009 -0500 @@ -473,7 +473,7 @@ # step 1: find all explicit files for ff in sorted(files): - nf = normalize(normpath(ff), True) + nf = normalize(normpath(ff), False) if nf in results: continue diff -r 28eaf6f8abce -r 14a0bdd59848 tests/test-bisect --- a/tests/test-bisect Sat Jun 13 18:01:48 2009 -0500 +++ b/tests/test-bisect Sat Jun 13 18:08:51 2009 -0500 @@ -82,3 +82,25 @@ hg bisect -s hg bisect -s hg bisect -g + +set +e + +echo % test invalid command +hg bisect -r +hg bisect --command 'foobar' + +echo % test bisecting command +cat > script.py <