Show More
@@ -390,16 +390,26 b' def emitrevisions(' | |||
|
390 | 390 | |
|
391 | 391 | # Set of revs available to delta against. |
|
392 | 392 | available = set() |
|
393 | parents = [] | |
|
393 | 394 | |
|
394 | 395 | def is_usable_base(rev): |
|
395 | return rev != nullrev and rev in available | |
|
396 | """Is a delta against this revision usable over the wire""" | |
|
397 | if rev == nullrev: | |
|
398 | return False | |
|
399 | # Base revision was already emitted in this group. | |
|
400 | if rev in available: | |
|
401 | return True | |
|
402 | # Base revision is a parent that hasn't been emitted already. | |
|
403 | if assumehaveparentrevisions and rev in parents: | |
|
404 | return True | |
|
405 | return False | |
|
396 | 406 | |
|
397 | 407 | for rev in revs: |
|
398 | 408 | if rev == nullrev: |
|
399 | 409 | continue |
|
400 | 410 | |
|
401 | 411 | node = fnode(rev) |
|
402 | p1rev, p2rev = store.parentrevs(rev) | |
|
412 | parents[:] = p1rev, p2rev = store.parentrevs(rev) | |
|
403 | 413 | |
|
404 | 414 | if deltaparentfn: |
|
405 | 415 | deltaparentrev = deltaparentfn(rev) |
@@ -421,16 +431,9 b' def emitrevisions(' | |||
|
421 | 431 | # amounts to effectively copying data from storage and is |
|
422 | 432 | # therefore the fastest. |
|
423 | 433 | elif deltaparentrev != nullrev: |
|
424 | # Base revision was already emitted in this group. We can | |
|
425 | # always safely use the delta. | |
|
434 | # If the stored delta works, let us use it ! | |
|
426 | 435 | if is_usable_base(deltaparentrev): |
|
427 | 436 | baserev = deltaparentrev |
|
428 | ||
|
429 | # Base revision is a parent that hasn't been emitted already. | |
|
430 | # Use it if we can assume the receiver has the parent revision. | |
|
431 | elif assumehaveparentrevisions and deltaparentrev in (p1rev, p2rev): | |
|
432 | baserev = deltaparentrev | |
|
433 | ||
|
434 | 437 | # No guarantee the receiver has the delta parent. Send delta |
|
435 | 438 | # against last revision (if possible), which in the common case |
|
436 | 439 | # should be similar enough to this revision that the delta is |
General Comments 0
You need to be logged in to leave comments.
Login now