comparison mercurial/changelog.py @ 6750:fb42030d79d6

add __len__ and __iter__ methods to repo and revlog
author Matt Mackall <mpm@selenic.com>
date Thu, 26 Jun 2008 14:35:50 -0500
parents d60aa0308b02
children f67d1468ac50
comparison
equal deleted inserted replaced
6749:51b0e799352f 6750:fb42030d79d6
80 80
81 def delayupdate(self): 81 def delayupdate(self):
82 "delay visibility of index updates to other readers" 82 "delay visibility of index updates to other readers"
83 self._realopener = self.opener 83 self._realopener = self.opener
84 self.opener = self._delayopener 84 self.opener = self._delayopener
85 self._delaycount = self.count() 85 self._delaycount = len(self)
86 self._delaybuf = [] 86 self._delaybuf = []
87 self._delayname = None 87 self._delayname = None
88 88
89 def finalize(self, tr): 89 def finalize(self, tr):
90 "finalize index updates" 90 "finalize index updates"
106 if not name == self.indexfile: 106 if not name == self.indexfile:
107 return fp 107 return fp
108 # if we're doing an initial clone, divert to another file 108 # if we're doing an initial clone, divert to another file
109 if self._delaycount == 0: 109 if self._delaycount == 0:
110 self._delayname = fp.name 110 self._delayname = fp.name
111 if not self.count(): 111 if not len(self):
112 # make sure to truncate the file 112 # make sure to truncate the file
113 mode = mode.replace('a', 'w') 113 mode = mode.replace('a', 'w')
114 return self._realopener(name + ".a", mode) 114 return self._realopener(name + ".a", mode)
115 # otherwise, divert to memory 115 # otherwise, divert to memory
116 return appender(fp, self._delaybuf) 116 return appender(fp, self._delaybuf)
190 extra = self.encode_extra(extra) 190 extra = self.encode_extra(extra)
191 parseddate = "%s %s" % (parseddate, extra) 191 parseddate = "%s %s" % (parseddate, extra)
192 list.sort() 192 list.sort()
193 l = [hex(manifest), user, parseddate] + list + ["", desc] 193 l = [hex(manifest), user, parseddate] + list + ["", desc]
194 text = "\n".join(l) 194 text = "\n".join(l)
195 return self.addrevision(text, transaction, self.count(), p1, p2) 195 return self.addrevision(text, transaction, len(self), p1, p2)