D6383: bookmarks: use vfs.tryread() instead of reimplementing it
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu May 16 07:58:24 EDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG798b27e46971: bookmarks: use vfs.tryread() instead of reimplementing it (authored by martinvonz, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6383?vs=15127&id=15134
REVISION DETAIL
https://phab.mercurial-scm.org/D6383
AFFECTED FILES
mercurial/bookmarks.py
CHANGE DETAILS
diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -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):
To: martinvonz, #hg-reviewers, pulkit
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list