equal
deleted
inserted
replaced
112 if optimaldelta: |
112 if optimaldelta: |
113 deltaparent = parentrev |
113 deltaparent = parentrev |
114 else: |
114 else: |
115 # suboptimal deltaparent |
115 # suboptimal deltaparent |
116 deltaparent = min(0, parentrev) |
116 deltaparent = min(0, parentrev) |
|
117 if not rlog.candelta(deltaparent, r): |
|
118 deltaparent = -1 |
117 return {'node': rlog.node(r), 'p1': pnode, 'p2': node.nullid, |
119 return {'node': rlog.node(r), 'p1': pnode, 'p2': node.nullid, |
118 'cs': rlog.node(rlog.linkrev(r)), 'flags': rlog.flags(r), |
120 'cs': rlog.node(rlog.linkrev(r)), 'flags': rlog.flags(r), |
119 'deltabase': rlog.node(deltaparent), |
121 'deltabase': rlog.node(deltaparent), |
120 'delta': rlog.revdiff(deltaparent, r)} |
122 'delta': rlog.revdiff(deltaparent, r)} |
121 |
123 |
149 ''' |
151 ''' |
150 dlog = newrevlog(destname, recreate=True) |
152 dlog = newrevlog(destname, recreate=True) |
151 for r in rlog: |
153 for r in rlog: |
152 p1 = rlog.node(r - 1) |
154 p1 = rlog.node(r - 1) |
153 p2 = node.nullid |
155 p2 = node.nullid |
154 if r == 0: |
156 if r == 0 or (rlog.flags(r) & revlog.REVIDX_EXTSTORED): |
155 text = rlog.revision(r, raw=True) |
157 text = rlog.revision(r, raw=True) |
156 cachedelta = None |
158 cachedelta = None |
157 else: |
159 else: |
158 # deltaparent is more interesting if it has the EXTSTORED flag. |
160 # deltaparent cannot have EXTSTORED flag. |
159 deltaparent = max([0] + [p for p in range(r - 2) if rlog.flags(p)]) |
161 deltaparent = max([-1] + |
|
162 [p for p in range(r) |
|
163 if rlog.flags(p) & revlog.REVIDX_EXTSTORED == 0]) |
160 text = None |
164 text = None |
161 cachedelta = (deltaparent, rlog.revdiff(deltaparent, r)) |
165 cachedelta = (deltaparent, rlog.revdiff(deltaparent, r)) |
162 flags = rlog.flags(r) |
166 flags = rlog.flags(r) |
163 ifh = dfh = None |
167 ifh = dfh = None |
164 try: |
168 try: |
260 if rlog.revision(rev, raw=True) != rawtext: |
264 if rlog.revision(rev, raw=True) != rawtext: |
261 abort('rev %d: wrong rawtext' % rev) |
265 abort('rev %d: wrong rawtext' % rev) |
262 result.append((text, rawtext)) |
266 result.append((text, rawtext)) |
263 |
267 |
264 # Verify flags like isdelta, isext work as expected |
268 # Verify flags like isdelta, isext work as expected |
265 if bool(rlog.deltaparent(rev) > -1) != isdelta: |
269 # isdelta can be overridden to False if this or p1 has isext set |
266 abort('rev %d: isdelta is ineffective' % rev) |
270 if bool(rlog.deltaparent(rev) > -1) and not isdelta: |
|
271 abort('rev %d: isdelta is unexpected' % rev) |
267 if bool(rlog.flags(rev)) != isext: |
272 if bool(rlog.flags(rev)) != isext: |
268 abort('rev %d: isext is ineffective' % rev) |
273 abort('rev %d: isext is ineffective' % rev) |
269 return result |
274 return result |
270 |
275 |
271 # Main test and checking |
276 # Main test and checking |