diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -461,13 +461,13 @@ # skip nonexistent file self.entries = set() return - self.entries = set(decodedir(fp.read()).splitlines()) - if '' in self.entries: - fp.seek(0) - for n, line in enumerate(util.iterfile(fp)): - if not line.rstrip('\n'): - t = _('invalid entry in fncache, line %d') % (n + 1) - raise error.Abort(t) + self.entries = set() + for n, line in enumerate(util.iterfile(fp)): + entry = line.rstrip('\n') + if not entry: + t = _('invalid entry in fncache, line %d') % (n + 1) + raise error.Abort(t) + self.entries.add(decodedir(entry)) fp.close() def write(self, tr):