117 return {'node': rlog.node(r), 'p1': pnode, 'p2': node.nullid, |
117 return {'node': rlog.node(r), 'p1': pnode, 'p2': node.nullid, |
118 'cs': rlog.node(rlog.linkrev(r)), 'flags': rlog.flags(r), |
118 'cs': rlog.node(rlog.linkrev(r)), 'flags': rlog.flags(r), |
119 'deltabase': rlog.node(deltaparent), |
119 'deltabase': rlog.node(deltaparent), |
120 'delta': rlog.revdiff(deltaparent, r)} |
120 'delta': rlog.revdiff(deltaparent, r)} |
121 |
121 |
|
122 def deltaiter(self, linkmapper): |
|
123 chain = None |
|
124 for chunkdata in iter(lambda: self.deltachunk(chain), {}): |
|
125 node = chunkdata['node'] |
|
126 p1 = chunkdata['p1'] |
|
127 p2 = chunkdata['p2'] |
|
128 cs = chunkdata['cs'] |
|
129 deltabase = chunkdata['deltabase'] |
|
130 delta = chunkdata['delta'] |
|
131 flags = chunkdata['flags'] |
|
132 |
|
133 link = linkmapper(cs) |
|
134 chain = node |
|
135 |
|
136 yield (node, p1, p2, link, deltabase, delta, flags) |
|
137 |
122 def linkmap(lnode): |
138 def linkmap(lnode): |
123 return rlog.rev(lnode) |
139 return rlog.rev(lnode) |
124 |
140 |
125 dlog = newrevlog(destname, recreate=True) |
141 dlog = newrevlog(destname, recreate=True) |
126 dlog.addgroup(dummychangegroup(), linkmap, tr) |
142 dummydeltas = dummychangegroup().deltaiter(linkmap) |
|
143 dlog.addgroup(dummydeltas, tr) |
127 return dlog |
144 return dlog |
128 |
145 |
129 def lowlevelcopy(rlog, tr, destname=b'_destrevlog.i'): |
146 def lowlevelcopy(rlog, tr, destname=b'_destrevlog.i'): |
130 '''Like addgroupcopy, but use the low level revlog._addrevision directly. |
147 '''Like addgroupcopy, but use the low level revlog._addrevision directly. |
131 |
148 |