# HG changeset patch # User Martin von Zweigbergk # Date 1557940776 25200 # Node ID 2b77183ac47733ed0a76e126ad939c100514c761 # Parent ec5bd3ab26bfaaeff3410e3f55df34f4f580b024 bookmarks: use vfs.tryread() instead of reimplementing it Differential Revision: https://phab.mercurial-scm.org/D6383 diff -r ec5bd3ab26bf -r 2b77183ac477 mercurial/bookmarks.py --- a/mercurial/bookmarks.py Wed May 15 10:13:29 2019 -0700 +++ b/mercurial/bookmarks.py Wed May 15 10:19:36 2019 -0700 @@ -297,28 +297,12 @@ itself as we commit. This function returns the name of that bookmark. It is stored in .hg/bookmarks.current """ - try: - file = repo.vfs('bookmarks.current') - except IOError as inst: - if inst.errno != errno.ENOENT: - raise - return None - try: - # No readline() in osutil.posixfile, reading everything is - # cheap. - # Note that it's possible for readlines() here to raise - # IOError, since we might be reading the active mark over - # static-http which only tries to load the file when we try - # to read from it. - mark = encoding.tolocal((file.readlines() or [''])[0]) - if mark == '' or mark not in marks: - mark = None - except IOError as inst: - if inst.errno != errno.ENOENT: - raise - return None - finally: - file.close() + # No readline() in osutil.posixfile, reading everything is + # cheap. + content = repo.vfs.tryread('bookmarks.current') + mark = encoding.tolocal((content.splitlines() or [''])[0]) + if mark == '' or mark not in marks: + mark = None return mark def activate(repo, mark):