# HG changeset patch # User Bryan O'Sullivan # Date 1451228154 -32400 # Node ID cba62f996780ca0f308cc88a817769debcdeac48 # Parent f5b6b4e574c1323e5ef237149bac88aba05222f2 hbisect: use tryreadlines to load state This closes the file handle after reading, which stops PyPy from leaking open file handles and thus failing test-bisect3.t. diff -r f5b6b4e574c1 -r cba62f996780 mercurial/hbisect.py --- a/mercurial/hbisect.py Sun Dec 27 23:55:54 2015 +0900 +++ b/mercurial/hbisect.py Sun Dec 27 23:55:54 2015 +0900 @@ -11,7 +11,6 @@ from __future__ import absolute_import import collections -import os from .i18n import _ from .node import ( @@ -143,13 +142,12 @@ def load_state(repo): state = {'current': [], 'good': [], 'bad': [], 'skip': []} - if os.path.exists(repo.join("bisect.state")): - for l in repo.vfs("bisect.state"): - kind, node = l[:-1].split() - node = repo.lookup(node) - if kind not in state: - raise error.Abort(_("unknown bisect kind %s") % kind) - state[kind].append(node) + for l in repo.vfs.tryreadlines("bisect.state"): + kind, node = l[:-1].split() + node = repo.lookup(node) + if kind not in state: + raise error.Abort(_("unknown bisect kind %s") % kind) + state[kind].append(node) return state