D6023: branchcache: move loading of branch names and nodes into it's own function
yuja (Yuya Nishihara)
phabricator at mercurial-scm.org
Mon Feb 25 22:58:09 UTC 2019
yuja added a comment.
> if not bcache.validfor(repo):
> # invalidate the cache
> raise ValueError(r'tip differs')
>
> - cl = repo.changelog
> - for line in lineiter:
> - line = line.rstrip('\n')
> - if not line:
> - continue
> - node, state, label = line.split(" ", 2)
> - if state not in 'oc':
> - raise ValueError(r'invalid branch state')
> - label = encoding.tolocal(label.strip())
> - node = bin(node)
> - if not cl.hasnode(node):
> - raise ValueError(
> - r'node %s does not exist' % pycompat.sysstr(hex(node)))
> - bcache.setdefault(label, []).append(node)
> - if state == 'c':
> - bcache._closednodes.add(node) - + bcache.load(repo, f) except (IOError, OSError): return None
>
> @@ -214,6 +198,26 @@
>
> return bcache
>
> + def load(self, repo, f): + """ fully loads the branchcache by reading from the file f """ + cl = repo.changelog + lineiter = iter(f)
Breaks test-static-http.t probably because `f` is read twice through
different iterators.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6023
To: pulkit, #hg-reviewers, lothiraldan
Cc: yuja, lothiraldan, mercurial-devel
More information about the Mercurial-devel
mailing list