comparison mercurial/changelog.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 08cabecfa8a8
children b8d750daadde
comparison
equal deleted inserted replaced
7633:08cabecfa8a8 7634:14a4337a9b9b
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, hex, nullid 8 from node import bin, hex, nullid
9 from revlog import revlog, RevlogError
10 from i18n import _ 9 from i18n import _
11 import util, error 10 import util, error, revlog
12 11
13 def _string_escape(text): 12 def _string_escape(text):
14 """ 13 """
15 >>> d = {'nl': chr(10), 'bs': chr(92), 'cr': chr(13), 'nul': chr(0)} 14 >>> d = {'nl': chr(10), 'bs': chr(92), 'cr': chr(13), 'nul': chr(0)}
16 >>> s = "ab%(nl)scd%(bs)s%(bs)sn%(nul)sab%(cr)scd%(bs)s%(nl)s" % d 15 >>> s = "ab%(nl)scd%(bs)s%(bs)sn%(nul)sab%(cr)scd%(bs)s%(nl)s" % d
73 72
74 def write(self, s): 73 def write(self, s):
75 self.data.append(str(s)) 74 self.data.append(str(s))
76 self.offset += len(s) 75 self.offset += len(s)
77 76
78 class changelog(revlog): 77 class changelog(revlog.revlog):
79 def __init__(self, opener): 78 def __init__(self, opener):
80 revlog.__init__(self, opener, "00changelog.i") 79 revlog.revlog.__init__(self, opener, "00changelog.i")
81 80
82 def delayupdate(self): 81 def delayupdate(self):
83 "delay visibility of index updates to other readers" 82 "delay visibility of index updates to other readers"
84 self._realopener = self.opener 83 self._realopener = self.opener
85 self.opener = self._delayopener 84 self.opener = self._delayopener
117 return appender(fp, self._delaybuf) 116 return appender(fp, self._delaybuf)
118 117
119 def checkinlinesize(self, tr, fp=None): 118 def checkinlinesize(self, tr, fp=None):
120 if self.opener == self._delayopener: 119 if self.opener == self._delayopener:
121 return 120 return
122 return revlog.checkinlinesize(self, tr, fp) 121 return revlog.revlog.checkinlinesize(self, tr, fp)
123 122
124 def decode_extra(self, text): 123 def decode_extra(self, text):
125 extra = {} 124 extra = {}
126 for l in text.split('\0'): 125 for l in text.split('\0'):
127 if l: 126 if l: