##// END OF EJS Templates
revlog: use chunk cache to avoid rereading when splitting inline files
Matt Mackall -
r8317:5cdf4067 default
parent child Browse files
Show More
@@ -1019,8 +1019,9 b' class revlog(object):'
1019
1019
1020 tr.add(self.datafile, dataoff)
1020 tr.add(self.datafile, dataoff)
1021
1021
1022 if not fp:
1022 if fp:
1023 fp = self.opener(self.indexfile, 'r')
1023 fp.flush()
1024 fp.close()
1024
1025
1025 df = self.opener(self.datafile, 'w')
1026 df = self.opener(self.datafile, 'w')
1026 try:
1027 try:
@@ -1028,13 +1029,11 b' class revlog(object):'
1028 for r in self:
1029 for r in self:
1029 start = self.start(r) + (r + 1) * calc
1030 start = self.start(r) + (r + 1) * calc
1030 length = self.length(r)
1031 length = self.length(r)
1031 fp.seek(start)
1032 d = self._getchunk(start, length)
1032 d = fp.read(length)
1033 df.write(d)
1033 df.write(d)
1034 finally:
1034 finally:
1035 df.close()
1035 df.close()
1036
1036
1037 fp.close()
1038 fp = self.opener(self.indexfile, 'w', atomictemp=True)
1037 fp = self.opener(self.indexfile, 'w', atomictemp=True)
1039 self.version &= ~(REVLOGNGINLINEDATA)
1038 self.version &= ~(REVLOGNGINLINEDATA)
1040 self._inline = False
1039 self._inline = False
General Comments 0
You need to be logged in to leave comments. Login now