comparison mercurial/revlog.py @ 11931:6051db1327f8

revlog: append delta against p1
author Pradeepkumar Gayam <in3xes@gmail.com>
date Tue, 10 Aug 2010 22:27:41 +0530
parents 12547cedc264
children 927ada259634
comparison
equal deleted inserted replaced
11930:12547cedc264 11931:6051db1327f8
1155 1155
1156 curr = len(self) 1156 curr = len(self)
1157 prev = curr - 1 1157 prev = curr - 1
1158 base = self.base(prev) 1158 base = self.base(prev)
1159 offset = self.end(prev) 1159 offset = self.end(prev)
1160 flags = 0
1160 1161
1161 if curr: 1162 if curr:
1162 if not d: 1163 if not d:
1163 ptext = self.revision(self.node(prev)) 1164 if self._parentdelta:
1165 ptext = self.revision(p1)
1166 flags = REVIDX_PARENTDELTA
1167 else:
1168 ptext = self.revision(self.node(prev))
1164 d = mdiff.textdiff(ptext, text) 1169 d = mdiff.textdiff(ptext, text)
1165 data = compress(d) 1170 data = compress(d)
1166 l = len(data[1]) + len(data[0]) 1171 l = len(data[1]) + len(data[0])
1167 dist = l + offset - self.start(base) 1172 dist = l + offset - self.start(base)
1168 1173
1173 (self.flags(base) & REVIDX_PUNCHED_FLAG)): 1178 (self.flags(base) & REVIDX_PUNCHED_FLAG)):
1174 data = compress(text) 1179 data = compress(text)
1175 l = len(data[1]) + len(data[0]) 1180 l = len(data[1]) + len(data[0])
1176 base = curr 1181 base = curr
1177 1182
1178 e = (offset_type(offset, 0), l, len(text), 1183 e = (offset_type(offset, flags), l, len(text),
1179 base, link, self.rev(p1), self.rev(p2), node) 1184 base, link, self.rev(p1), self.rev(p2), node)
1180 self.index.insert(-1, e) 1185 self.index.insert(-1, e)
1181 self.nodemap[node] = curr 1186 self.nodemap[node] = curr
1182 1187
1183 entry = self._io.packentry(e, self.node, self.version, curr) 1188 entry = self._io.packentry(e, self.node, self.version, curr)