equal
deleted
inserted
replaced
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) |