Mercurial > hg
diff mercurial/pure/parsers.py @ 7945:94d7e14cfa42
pure/parsers: fix circular imports, import mercurial modules properly
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 03 Apr 2009 12:37:38 -0500 |
parents | 4a4c7f6a5912 |
children | 46293a0c7e9f |
line wrap: on
line diff
--- a/mercurial/pure/parsers.py Fri Apr 03 12:37:30 2009 -0500 +++ b/mercurial/pure/parsers.py Fri Apr 03 12:37:38 2009 -0500 @@ -5,8 +5,9 @@ # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. -from node import bin, nullid, nullrev -import revlog, dirstate, struct, util, zlib +from mercurial.node import bin, nullid, nullrev +from mercurial import util +import struct, zlib _pack = struct.pack _unpack = struct.unpack @@ -24,7 +25,14 @@ mfdict[f] = bin(n) def parse_index(data, inline): - indexformatng = revlog.indexformatng + def gettype(q): + return int(q & 0xFFFF) + + def offset_type(offset, type): + return long(long(offset) << 16 | type) + + indexformatng = ">Qiiiiii20s12x" + s = struct.calcsize(indexformatng) index = [] cache = None @@ -52,8 +60,8 @@ off += s e = list(index[0]) - type = revlog.gettype(e[0]) - e[0] = revlog.offset_type(0, type) + type = gettype(e[0]) + e[0] = offset_type(0, type) index[0] = tuple(e) # add the magic null revision at -1 @@ -64,7 +72,8 @@ def parse_dirstate(dmap, copymap, st): parents = [st[:20], st[20: 40]] # deref fields so they will be local in loop - e_size = struct.calcsize(dirstate._format) + format = ">cllll" + e_size = struct.calcsize(format) pos1 = 40 l = len(st)