# HG changeset patch # User Matt Mackall # Date 1182191073 18000 # Node ID 49dcac6ede2639e29fbda310bed84e5888349804 # Parent 2651099c501880a317b842bc299f7931144f53fb dirstate: fold parse into read diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -204,11 +204,22 @@ class dirstate(object): except KeyError: return "?" - def parse(self, st): + def read(self): + self.map = {} + self.copymap = {} + self.pl = [nullid, nullid] + try: + st = self.opener("dirstate").read() + except IOError, err: + if err.errno != errno.ENOENT: raise + return + if not st: + return + self.pl = [st[:20], st[20: 40]] # deref fields so they will be local in loop - map = self.map + dmap = self.map copymap = self.copymap format = self.format unpack = struct.unpack @@ -226,20 +237,9 @@ class dirstate(object): if '\0' in f: f, c = f.split('\0') copymap[f] = c - map[f] = e[:4] + dmap[f] = e[:4] pos = newpos - def read(self): - self.map = {} - self.copymap = {} - self.pl = [nullid, nullid] - try: - st = self.opener("dirstate").read() - if st: - self.parse(st) - except IOError, err: - if err.errno != errno.ENOENT: raise - def reload(self): for a in "map copymap _branch pl dirs".split(): if hasattr(self, a):