Mercurial > public > mercurial-scm > hg
comparison mercurial/filelog.py @ 7634:14a4337a9b9b
revlog: kill from-style imports
They're slow.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 11 Jan 2009 22:55:36 -0600 |
parents | 4dd7b28003d2 |
children | 46293a0c7e9f |
comparison
equal
deleted
inserted
replaced
7633:08cabecfa8a8 | 7634:14a4337a9b9b |
---|---|
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> | 3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
4 # | 4 # |
5 # This software may be used and distributed according to the terms | 5 # This software may be used and distributed according to the terms |
6 # of the GNU General Public License, incorporated herein by reference. | 6 # of the GNU General Public License, incorporated herein by reference. |
7 | 7 |
8 from node import bin, nullid | 8 import revlog |
9 from revlog import revlog | |
10 | 9 |
11 class filelog(revlog): | 10 class filelog(revlog.revlog): |
12 def __init__(self, opener, path): | 11 def __init__(self, opener, path): |
13 revlog.__init__(self, opener, | 12 revlog.revlog.__init__(self, opener, |
14 "/".join(("data", self.encodedir(path + ".i")))) | 13 "/".join(("data", self.encodedir(path + ".i")))) |
15 | 14 |
16 # This avoids a collision between a file named foo and a dir named | 15 # This avoids a collision between a file named foo and a dir named |
17 # foo.i or foo.d | 16 # foo.i or foo.d |
18 def encodedir(self, path): | 17 def encodedir(self, path): |
53 mt = ["%s: %s\n" % (k, v) for k, v in meta.iteritems()] | 52 mt = ["%s: %s\n" % (k, v) for k, v in meta.iteritems()] |
54 text = "\1\n%s\1\n%s" % ("".join(mt), text) | 53 text = "\1\n%s\1\n%s" % ("".join(mt), text) |
55 return self.addrevision(text, transaction, link, p1, p2) | 54 return self.addrevision(text, transaction, link, p1, p2) |
56 | 55 |
57 def renamed(self, node): | 56 def renamed(self, node): |
58 if self.parents(node)[0] != nullid: | 57 if self.parents(node)[0] != revlog.nullid: |
59 return False | 58 return False |
60 m = self._readmeta(node) | 59 m = self._readmeta(node) |
61 if m and "copy" in m: | 60 if m and "copy" in m: |
62 return (m["copy"], bin(m["copyrev"])) | 61 return (m["copy"], revlog.bin(m["copyrev"])) |
63 return False | 62 return False |
64 | 63 |
65 def size(self, rev): | 64 def size(self, rev): |
66 """return the size of a given revision""" | 65 """return the size of a given revision""" |
67 | 66 |
68 # for revisions with renames, we have to go the slow way | 67 # for revisions with renames, we have to go the slow way |
69 node = self.node(rev) | 68 node = self.node(rev) |
70 if self.renamed(node): | 69 if self.renamed(node): |
71 return len(self.read(node)) | 70 return len(self.read(node)) |
72 | 71 |
73 return revlog.size(self, rev) | 72 return revlog.revlog.size(self, rev) |
74 | 73 |
75 def cmp(self, node, text): | 74 def cmp(self, node, text): |
76 """compare text with a given file revision""" | 75 """compare text with a given file revision""" |
77 | 76 |
78 # for renames, we have to go the slow way | 77 # for renames, we have to go the slow way |
79 if self.renamed(node): | 78 if self.renamed(node): |
80 t2 = self.read(node) | 79 t2 = self.read(node) |
81 return t2 != text | 80 return t2 != text |
82 | 81 |
83 return revlog.cmp(self, node, text) | 82 return revlog.revlog.cmp(self, node, text) |