diff -r bde66eb4051d -r f37da59a36d9 mercurial/commands.py --- a/mercurial/commands.py Wed Oct 30 19:19:57 2019 -0400 +++ b/mercurial/commands.py Thu Nov 14 10:47:04 2019 +0100 @@ -1073,7 +1073,7 @@ raise error.Abort(_(b'current bisect revision is a merge')) if rev: node = repo[scmutil.revsingle(repo, rev, node)].node() - try: + with hbisect.restore_state(repo, state, node): while changesets: # update state state[b'current'] = [node] @@ -1105,9 +1105,6 @@ # update to next check node = nodes[0] mayupdate(repo, node, show_stats=False) - finally: - state[b'current'] = [node] - hbisect.save_state(repo, state) hbisect.printresult(ui, repo, state, displayer, nodes, bgood) return