2262 |
2262 |
2263 DELTAREUSEALWAYS = 'always' |
2263 DELTAREUSEALWAYS = 'always' |
2264 DELTAREUSESAMEREVS = 'samerevs' |
2264 DELTAREUSESAMEREVS = 'samerevs' |
2265 DELTAREUSENEVER = 'never' |
2265 DELTAREUSENEVER = 'never' |
2266 |
2266 |
2267 DELTAREUSEALL = {'always', 'samerevs', 'never'} |
2267 DELTAREUSEFULLADD = 'fulladd' |
|
2268 |
|
2269 DELTAREUSEALL = {'always', 'samerevs', 'never', 'fulladd'} |
2268 |
2270 |
2269 def clone(self, tr, destrevlog, addrevisioncb=None, |
2271 def clone(self, tr, destrevlog, addrevisioncb=None, |
2270 deltareuse=DELTAREUSESAMEREVS, aggressivemergedeltas=None): |
2272 deltareuse=DELTAREUSESAMEREVS, aggressivemergedeltas=None): |
2271 """Copy this revlog to another, possibly with format changes. |
2273 """Copy this revlog to another, possibly with format changes. |
2272 |
2274 |
2353 cachedelta = (dp, str(self._chunk(rev))) |
2355 cachedelta = (dp, str(self._chunk(rev))) |
2354 |
2356 |
2355 if not cachedelta: |
2357 if not cachedelta: |
2356 rawtext = self.revision(rev, raw=True) |
2358 rawtext = self.revision(rev, raw=True) |
2357 |
2359 |
2358 ifh = destrevlog.opener(destrevlog.indexfile, 'a+', |
2360 |
2359 checkambig=False) |
2361 if deltareuse == self.DELTAREUSEFULLADD: |
2360 dfh = None |
2362 destrevlog.addrevision(rawtext, tr, linkrev, p1, p2, |
2361 if not destrevlog._inline: |
2363 cachedelta=cachedelta, |
2362 dfh = destrevlog.opener(destrevlog.datafile, 'a+') |
2364 node=node, flags=flags) |
2363 try: |
2365 else: |
2364 destrevlog._addrevision(node, rawtext, tr, linkrev, p1, p2, |
2366 ifh = destrevlog.opener(destrevlog.indexfile, 'a+', |
2365 flags, cachedelta, ifh, dfh) |
2367 checkambig=False) |
2366 finally: |
2368 dfh = None |
2367 if dfh: |
2369 if not destrevlog._inline: |
2368 dfh.close() |
2370 dfh = destrevlog.opener(destrevlog.datafile, 'a+') |
2369 ifh.close() |
2371 try: |
|
2372 destrevlog._addrevision(node, rawtext, tr, linkrev, p1, |
|
2373 p2, flags, cachedelta, ifh, dfh) |
|
2374 finally: |
|
2375 if dfh: |
|
2376 dfh.close() |
|
2377 ifh.close() |
2370 |
2378 |
2371 if addrevisioncb: |
2379 if addrevisioncb: |
2372 addrevisioncb(self, rev, node) |
2380 addrevisioncb(self, rev, node) |
2373 finally: |
2381 finally: |
2374 destrevlog._lazydeltabase = oldlazydeltabase |
2382 destrevlog._lazydeltabase = oldlazydeltabase |