D4281: branchmap: load branchmap as an iterable
mjpieters (Martijn Pieters)
phabricator at mercurial-scm.org
Wed Aug 15 23:08:34 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG9a800691f075: branchmap: load branchmap as an iterable (authored by mjpieters, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4281?vs=10353&id=10374
REVISION DETAIL
https://phab.mercurial-scm.org/D4281
AFFECTED FILES
mercurial/branchmap.py
CHANGE DETAILS
diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
--- a/mercurial/branchmap.py
+++ b/mercurial/branchmap.py
@@ -40,13 +40,7 @@
def read(repo):
try:
f = repo.cachevfs(_filename(repo))
- lines = f.read().split('\n')
- f.close()
- except (IOError, OSError):
- return None
-
- try:
- cachekey = lines.pop(0).split(" ", 2)
+ cachekey = next(f).split(" ", 2)
last, lrev = cachekey[:2]
last, lrev = bin(last), int(lrev)
filteredhash = None
@@ -58,7 +52,7 @@
# invalidate the cache
raise ValueError(r'tip differs')
cl = repo.changelog
- for l in lines:
+ for l in f:
if not l:
continue
node, state, label = l.split(" ", 2)
@@ -72,6 +66,10 @@
partial.setdefault(label, []).append(node)
if state == 'c':
partial._closednodes.add(node)
+
+ except (IOError, OSError):
+ return None
+
except Exception as inst:
if repo.ui.debugflag:
msg = 'invalid branchheads cache'
To: mjpieters, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list