Show More
@@ -452,35 +452,7 b' def pull(repo, remote, heads=None, force' | |||
|
452 | 452 | pullop.repo.ui.status(_("no changes found\n")) |
|
453 | 453 | result = 0 |
|
454 | 454 | else: |
|
455 | # We delay the open of the transaction as late as possible so we | |
|
456 | # don't open transaction for nothing or you break future useful | |
|
457 | # rollback call | |
|
458 | pullop.gettransaction() | |
|
459 | if pullop.heads is None and list(pullop.common) == [nullid]: | |
|
460 | pullop.repo.ui.status(_("requesting all changes\n")) | |
|
461 | elif (pullop.heads is None | |
|
462 | and pullop.remote.capable('changegroupsubset')): | |
|
463 | # issue1320, avoid a race if remote changed after discovery | |
|
464 | pullop.heads = pullop.rheads | |
|
465 | ||
|
466 | if pullop.remote.capable('getbundle'): | |
|
467 | # TODO: get bundlecaps from remote | |
|
468 | cg = pullop.remote.getbundle('pull', | |
|
469 | common=pullop.common, | |
|
470 | heads=(pullop.heads | |
|
471 | or pullop.rheads)) | |
|
472 | elif pullop.heads is None: | |
|
473 | cg = pullop.remote.changegroup(pullop.fetch, 'pull') | |
|
474 | elif not pullop.remote.capable('changegroupsubset'): | |
|
475 | raise util.Abort(_("partial pull cannot be done because " | |
|
476 | "other repository doesn't support " | |
|
477 | "changegroupsubset.")) | |
|
478 | else: | |
|
479 | cg = pullop.remote.changegroupsubset(pullop.fetch, | |
|
480 | pullop.heads, | |
|
481 | 'pull') | |
|
482 | result = pullop.repo.addchangegroup(cg, 'pull', | |
|
483 | pullop.remote.url()) | |
|
455 | result = _pullchangeset(pullop) | |
|
484 | 456 | |
|
485 | 457 | _pullphase(pullop) |
|
486 | 458 | _pullobsolete(pullop) |
@@ -491,6 +463,32 b' def pull(repo, remote, heads=None, force' | |||
|
491 | 463 | |
|
492 | 464 | return result |
|
493 | 465 | |
|
466 | def _pullchangeset(pullop): | |
|
467 | """pull changeset from unbundle into the local repo""" | |
|
468 | # We delay the open of the transaction as late as possible so we | |
|
469 | # don't open transaction for nothing or you break future useful | |
|
470 | # rollback call | |
|
471 | pullop.gettransaction() | |
|
472 | if pullop.heads is None and list(pullop.common) == [nullid]: | |
|
473 | pullop.repo.ui.status(_("requesting all changes\n")) | |
|
474 | elif pullop.heads is None and pullop.remote.capable('changegroupsubset'): | |
|
475 | # issue1320, avoid a race if remote changed after discovery | |
|
476 | pullop.heads = pullop.rheads | |
|
477 | ||
|
478 | if pullop.remote.capable('getbundle'): | |
|
479 | # TODO: get bundlecaps from remote | |
|
480 | cg = pullop.remote.getbundle('pull', common=pullop.common, | |
|
481 | heads=pullop.heads or pullop.rheads) | |
|
482 | elif pullop.heads is None: | |
|
483 | cg = pullop.remote.changegroup(pullop.fetch, 'pull') | |
|
484 | elif not pullop.remote.capable('changegroupsubset'): | |
|
485 | raise util.Abort(_("partial pull cannot be done because " | |
|
486 | "other repository doesn't support " | |
|
487 | "changegroupsubset.")) | |
|
488 | else: | |
|
489 | cg = pullop.remote.changegroupsubset(pullop.fetch, pullop.heads, 'pull') | |
|
490 | return pullop.repo.addchangegroup(cg, 'pull', pullop.remote.url()) | |
|
491 | ||
|
494 | 492 | def _pullphase(pullop): |
|
495 | 493 | # Get remote phases data from remote |
|
496 | 494 | remotephases = pullop.remote.listkeys('phases') |
General Comments 0
You need to be logged in to leave comments.
Login now