mercurial/revlog.py
changeset 5338 f87685355c9c
parent 5325 5971cfc0a56a
child 5369 7530334bf301
equal deleted inserted replaced
5337:8c5ef3b87cb1 5338:f87685355c9c
   312             nodemap[e[6]] = n
   312             nodemap[e[6]] = n
   313             n += 1
   313             n += 1
   314 
   314 
   315         return index, nodemap, None
   315         return index, nodemap, None
   316 
   316 
   317     def packentry(self, entry, node, version):
   317     def packentry(self, entry, node, version, rev):
   318         e2 = (getoffset(entry[0]), entry[1], entry[3], entry[4],
   318         e2 = (getoffset(entry[0]), entry[1], entry[3], entry[4],
   319               node(entry[5]), node(entry[6]), entry[7])
   319               node(entry[5]), node(entry[6]), entry[7])
   320         return _pack(indexformatv0, *e2)
   320         return _pack(indexformatv0, *e2)
   321 
   321 
   322 # index ng:
   322 # index ng:
   386         e[0] = offset_type(0, type)
   386         e[0] = offset_type(0, type)
   387         index[0] = e
   387         index[0] = e
   388 
   388 
   389         return index, nodemap, cache
   389         return index, nodemap, cache
   390 
   390 
   391     def packentry(self, entry, node, version):
   391     def packentry(self, entry, node, version, rev):
   392         p = _pack(indexformatng, *entry)
   392         p = _pack(indexformatng, *entry)
   393         if not entry[3] and not getoffset(entry[0]) and entry[5] == nullrev:
   393         if rev == 0:
   394             p = _pack(versionformat, version) + p[4:]
   394             p = _pack(versionformat, version) + p[4:]
   395         return p
   395         return p
   396 
   396 
   397 class revlog(object):
   397 class revlog(object):
   398     """
   398     """
   970         df.close()
   970         df.close()
   971         fp = self.opener(self.indexfile, 'w', atomictemp=True)
   971         fp = self.opener(self.indexfile, 'w', atomictemp=True)
   972         self.version &= ~(REVLOGNGINLINEDATA)
   972         self.version &= ~(REVLOGNGINLINEDATA)
   973         self._inline = False
   973         self._inline = False
   974         for i in xrange(self.count()):
   974         for i in xrange(self.count()):
   975             e = self._io.packentry(self.index[i], self.node, self.version)
   975             e = self._io.packentry(self.index[i], self.node, self.version, i)
   976             fp.write(e)
   976             fp.write(e)
   977 
   977 
   978         # if we don't call rename, the temp file will never replace the
   978         # if we don't call rename, the temp file will never replace the
   979         # real index
   979         # real index
   980         fp.rename()
   980         fp.rename()
  1025         e = (offset_type(offset, 0), l, len(text),
  1025         e = (offset_type(offset, 0), l, len(text),
  1026              base, link, self.rev(p1), self.rev(p2), node)
  1026              base, link, self.rev(p1), self.rev(p2), node)
  1027         self.index.insert(-1, e)
  1027         self.index.insert(-1, e)
  1028         self.nodemap[node] = curr
  1028         self.nodemap[node] = curr
  1029 
  1029 
  1030         entry = self._io.packentry(e, self.node, self.version)
  1030         entry = self._io.packentry(e, self.node, self.version, curr)
  1031         if not self._inline:
  1031         if not self._inline:
  1032             transaction.add(self.datafile, offset)
  1032             transaction.add(self.datafile, offset)
  1033             transaction.add(self.indexfile, curr * len(entry))
  1033             transaction.add(self.indexfile, curr * len(entry))
  1034             if data[0]:
  1034             if data[0]:
  1035                 dfh.write(data[0])
  1035                 dfh.write(data[0])
  1177             else:
  1177             else:
  1178                 e = (offset_type(end, 0), len(cdelta), textlen, base,
  1178                 e = (offset_type(end, 0), len(cdelta), textlen, base,
  1179                      link, self.rev(p1), self.rev(p2), node)
  1179                      link, self.rev(p1), self.rev(p2), node)
  1180                 self.index.insert(-1, e)
  1180                 self.index.insert(-1, e)
  1181                 self.nodemap[node] = r
  1181                 self.nodemap[node] = r
  1182                 entry = self._io.packentry(e, self.node, self.version)
  1182                 entry = self._io.packentry(e, self.node, self.version, r)
  1183                 if self._inline:
  1183                 if self._inline:
  1184                     ifh.write(entry)
  1184                     ifh.write(entry)
  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: