##// END OF EJS Templates
revlog: change _inline from a function to a variable
Matt Mackall -
r4982:9672e3c4 default
parent child Browse files
Show More
@@ -460,13 +460,14 b' class revlog(object):'
460 raise RevlogError(_("index %s unknown format %d")
460 raise RevlogError(_("index %s unknown format %d")
461 % (self.indexfile, fmt))
461 % (self.indexfile, fmt))
462 self.version = v
462 self.version = v
463 self._inline = v & REVLOGNGINLINEDATA
463 self.nodemap = {nullid: nullrev}
464 self.nodemap = {nullid: nullrev}
464 self.index = []
465 self.index = []
465 self._io = revlogio()
466 self._io = revlogio()
466 if self.version == REVLOGV0:
467 if self.version == REVLOGV0:
467 self._io = revlogoldio()
468 self._io = revlogoldio()
468 if i:
469 if i:
469 self.index, self.nodemap = self._io.parseindex(f, st, self._inline())
470 self.index, self.nodemap = self._io.parseindex(f, st, self._inline)
470 # add the magic null revision at -1
471 # add the magic null revision at -1
471 self.index.append((0, 0, 0, -1, -1, -1, -1, nullid))
472 self.index.append((0, 0, 0, -1, -1, -1, -1, nullid))
472
473
@@ -488,8 +489,6 b' class revlog(object):'
488 self.nodemap.p.loadmap()
489 self.nodemap.p.loadmap()
489 self.nodemap = self.nodemap.p.map
490 self.nodemap = self.nodemap.p.map
490
491
491 def _inline(self):
492 return self.version & REVLOGNGINLINEDATA
493 def tip(self):
492 def tip(self):
494 return self.node(len(self.index) - 2)
493 return self.node(len(self.index) - 2)
495 def count(self):
494 def count(self):
@@ -844,7 +843,7 b' class revlog(object):'
844
843
845 def chunk(self, rev, df=None, cachelen=4096):
844 def chunk(self, rev, df=None, cachelen=4096):
846 start, length = self.start(rev), self.length(rev)
845 start, length = self.start(rev), self.length(rev)
847 inline = self._inline()
846 inline = self._inline
848 if inline:
847 if inline:
849 start += (rev + 1) * self._io.size
848 start += (rev + 1) * self._io.size
850 end = start + length
849 end = start + length
@@ -899,7 +898,7 b' class revlog(object):'
899 rev = self.rev(node)
898 rev = self.rev(node)
900 base = self.base(rev)
899 base = self.base(rev)
901
900
902 if self._inline():
901 if self._inline:
903 # we probably have the whole chunk cached
902 # we probably have the whole chunk cached
904 df = None
903 df = None
905 else:
904 else:
@@ -929,7 +928,7 b' class revlog(object):'
929 return text
928 return text
930
929
931 def checkinlinesize(self, tr, fp=None):
930 def checkinlinesize(self, tr, fp=None):
932 if not self._inline():
931 if not self._inline:
933 return
932 return
934 if not fp:
933 if not fp:
935 fp = self.opener(self.indexfile, 'r')
934 fp = self.opener(self.indexfile, 'r')
@@ -958,6 +957,7 b' class revlog(object):'
958 df.close()
957 df.close()
959 fp = self.opener(self.indexfile, 'w', atomictemp=True)
958 fp = self.opener(self.indexfile, 'w', atomictemp=True)
960 self.version &= ~(REVLOGNGINLINEDATA)
959 self.version &= ~(REVLOGNGINLINEDATA)
960 self._inline = False
961 if self.count():
961 if self.count():
962 x = self.index[0]
962 x = self.index[0]
963 e = struct.pack(indexformatng, *x)[4:]
963 e = struct.pack(indexformatng, *x)[4:]
@@ -987,7 +987,7 b' class revlog(object):'
987 d - an optional precomputed delta
987 d - an optional precomputed delta
988 """
988 """
989 dfh = None
989 dfh = None
990 if not self._inline():
990 if not self._inline:
991 dfh = self.opener(self.datafile, "a")
991 dfh = self.opener(self.datafile, "a")
992 ifh = self.opener(self.indexfile, "a+")
992 ifh = self.opener(self.indexfile, "a+")
993 return self._addrevision(text, transaction, link, p1, p2, d, ifh, dfh)
993 return self._addrevision(text, transaction, link, p1, p2, d, ifh, dfh)
@@ -1030,7 +1030,7 b' class revlog(object):'
1030 if not curr:
1030 if not curr:
1031 entry = struct.pack(versionformat, self.version) + entry[4:]
1031 entry = struct.pack(versionformat, self.version) + entry[4:]
1032
1032
1033 if not self._inline():
1033 if not self._inline:
1034 transaction.add(self.datafile, offset)
1034 transaction.add(self.datafile, offset)
1035 transaction.add(self.indexfile, curr * len(entry))
1035 transaction.add(self.indexfile, curr * len(entry))
1036 if data[0]:
1036 if data[0]:
@@ -1118,7 +1118,7 b' class revlog(object):'
1118 ifh = self.opener(self.indexfile, "a+")
1118 ifh = self.opener(self.indexfile, "a+")
1119 ifh.seek(0, 2)
1119 ifh.seek(0, 2)
1120 transaction.add(self.indexfile, ifh.tell(), self.count())
1120 transaction.add(self.indexfile, ifh.tell(), self.count())
1121 if self._inline():
1121 if self._inline:
1122 dfh = None
1122 dfh = None
1123 else:
1123 else:
1124 transaction.add(self.datafile, end)
1124 transaction.add(self.datafile, end)
@@ -1167,7 +1167,7 b' class revlog(object):'
1167 text = self.patches(text, [delta])
1167 text = self.patches(text, [delta])
1168 chk = self._addrevision(text, transaction, link, p1, p2, None,
1168 chk = self._addrevision(text, transaction, link, p1, p2, None,
1169 ifh, dfh)
1169 ifh, dfh)
1170 if not dfh and not self._inline():
1170 if not dfh and not self._inline:
1171 # addrevision switched from inline to conventional
1171 # addrevision switched from inline to conventional
1172 # reopen the index
1172 # reopen the index
1173 dfh = self.opener(self.datafile, "a")
1173 dfh = self.opener(self.datafile, "a")
@@ -1180,11 +1180,11 b' class revlog(object):'
1180 link, self.rev(p1), self.rev(p2), node)
1180 link, self.rev(p1), self.rev(p2), node)
1181 self.index.insert(-1, e)
1181 self.index.insert(-1, e)
1182 self.nodemap[node] = r
1182 self.nodemap[node] = r
1183 if self._inline():
1183 if self._inline:
1184 ifh.write(struct.pack(indexformatng, *e))
1184 ifh.write(struct.pack(indexformatng, *e))
1185 ifh.write(cdelta)
1185 ifh.write(cdelta)
1186 self.checkinlinesize(transaction, ifh)
1186 self.checkinlinesize(transaction, ifh)
1187 if not self._inline():
1187 if not self._inline:
1188 dfh = self.opener(self.datafile, "a")
1188 dfh = self.opener(self.datafile, "a")
1189 ifh = self.opener(self.indexfile, "a")
1189 ifh = self.opener(self.indexfile, "a")
1190 else:
1190 else:
@@ -1221,7 +1221,7 b' class revlog(object):'
1221
1221
1222 # first truncate the files on disk
1222 # first truncate the files on disk
1223 end = self.start(rev)
1223 end = self.start(rev)
1224 if not self._inline():
1224 if not self._inline:
1225 df = self.opener(self.datafile, "a")
1225 df = self.opener(self.datafile, "a")
1226 df.truncate(end)
1226 df.truncate(end)
1227 end = rev * self._io.size
1227 end = rev * self._io.size
@@ -1261,7 +1261,7 b' class revlog(object):'
1261 s = self._io.size
1261 s = self._io.size
1262 i = actual / s
1262 i = actual / s
1263 di = actual - (i * s)
1263 di = actual - (i * s)
1264 if self._inline():
1264 if self._inline:
1265 databytes = 0
1265 databytes = 0
1266 for r in xrange(self.count()):
1266 for r in xrange(self.count()):
1267 databytes += self.length(r)
1267 databytes += self.length(r)
General Comments 0
You need to be logged in to leave comments. Login now