Show More
@@ -493,6 +493,25 b' def getlocalbundle(repo, source, outgoin' | |||||
493 | bundler = bundle10(repo, bundlecaps) |
|
493 | bundler = bundle10(repo, bundlecaps) | |
494 | return getsubset(repo, outgoing, bundler, source) |
|
494 | return getsubset(repo, outgoing, bundler, source) | |
495 |
|
495 | |||
|
496 | def _computeoutgoing(repo, heads, common): | |||
|
497 | """Computes which revs are outgoing given a set of common | |||
|
498 | and a set of heads. | |||
|
499 | ||||
|
500 | This is a separate function so extensions can have access to | |||
|
501 | the logic. | |||
|
502 | ||||
|
503 | Returns a discovery.outgoing object. | |||
|
504 | """ | |||
|
505 | cl = repo.changelog | |||
|
506 | if common: | |||
|
507 | hasnode = cl.hasnode | |||
|
508 | common = [n for n in common if hasnode(n)] | |||
|
509 | else: | |||
|
510 | common = [nullid] | |||
|
511 | if not heads: | |||
|
512 | heads = cl.heads() | |||
|
513 | return discovery.outgoing(cl, common, heads) | |||
|
514 | ||||
496 | def getbundle(repo, source, heads=None, common=None, bundlecaps=None): |
|
515 | def getbundle(repo, source, heads=None, common=None, bundlecaps=None): | |
497 | """Like changegroupsubset, but returns the set difference between the |
|
516 | """Like changegroupsubset, but returns the set difference between the | |
498 | ancestors of heads and the ancestors common. |
|
517 | ancestors of heads and the ancestors common. | |
@@ -502,15 +521,7 b' def getbundle(repo, source, heads=None, ' | |||||
502 | The nodes in common might not all be known locally due to the way the |
|
521 | The nodes in common might not all be known locally due to the way the | |
503 | current discovery protocol works. |
|
522 | current discovery protocol works. | |
504 | """ |
|
523 | """ | |
505 | cl = repo.changelog |
|
524 | outgoing = _computeoutgoing(repo, heads, common) | |
506 | if common: |
|
|||
507 | hasnode = cl.hasnode |
|
|||
508 | common = [n for n in common if hasnode(n)] |
|
|||
509 | else: |
|
|||
510 | common = [nullid] |
|
|||
511 | if not heads: |
|
|||
512 | heads = cl.heads() |
|
|||
513 | outgoing = discovery.outgoing(cl, common, heads) |
|
|||
514 | return getlocalbundle(repo, source, outgoing, bundlecaps=bundlecaps) |
|
525 | return getlocalbundle(repo, source, outgoing, bundlecaps=bundlecaps) | |
515 |
|
526 | |||
516 | def changegroup(repo, basenodes, source): |
|
527 | def changegroup(repo, basenodes, source): |
General Comments 0
You need to be logged in to leave comments.
Login now