Show More
@@ -8,7 +8,7 b'' | |||||
8 | from i18n import _ |
|
8 | from i18n import _ | |
9 | from node import hex, nullid |
|
9 | from node import hex, nullid | |
10 | import errno |
|
10 | import errno | |
11 | import util, scmutil, changegroup |
|
11 | import util, scmutil, changegroup, base85 | |
12 | import discovery, phases, obsolete, bookmarks |
|
12 | import discovery, phases, obsolete, bookmarks | |
13 |
|
13 | |||
14 |
|
14 | |||
@@ -393,7 +393,7 b' class pulloperation(object):' | |||||
393 | self.force = force |
|
393 | self.force = force | |
394 |
|
394 | |||
395 | def pull(repo, remote, heads=None, force=False): |
|
395 | def pull(repo, remote, heads=None, force=False): | |
396 | pullop = pulloperation(repo, remote, heads) |
|
396 | pullop = pulloperation(repo, remote, heads, force) | |
397 | if pullop.remote.local(): |
|
397 | if pullop.remote.local(): | |
398 | missing = set(pullop.remote.requirements) - pullop.repo.supported |
|
398 | missing = set(pullop.remote.requirements) - pullop.repo.supported | |
399 | if missing: |
|
399 | if missing: | |
@@ -470,7 +470,7 b' def pull(repo, remote, heads=None, force' | |||||
470 | return pullop.repo.transaction(trname) |
|
470 | return pullop.repo.transaction(trname) | |
471 | return tr |
|
471 | return tr | |
472 |
|
472 | |||
473 |
obstr = obsolete |
|
473 | obstr = _pullobsolete(pullop.repo, pullop.remote, gettransaction) | |
474 | if obstr is not None: |
|
474 | if obstr is not None: | |
475 | tr = obstr |
|
475 | tr = obstr | |
476 |
|
476 | |||
@@ -482,3 +482,25 b' def pull(repo, remote, heads=None, force' | |||||
482 | lock.release() |
|
482 | lock.release() | |
483 |
|
483 | |||
484 | return result |
|
484 | return result | |
|
485 | ||||
|
486 | def _pullobsolete(repo, remote, gettransaction): | |||
|
487 | """utility function to pull obsolete markers from a remote | |||
|
488 | ||||
|
489 | The `gettransaction` is function that return the pull transaction, creating | |||
|
490 | one if necessary. We return the transaction to inform the calling code that | |||
|
491 | a new transaction have been created (when applicable). | |||
|
492 | ||||
|
493 | Exists mostly to allow overriding for experimentation purpose""" | |||
|
494 | tr = None | |||
|
495 | if obsolete._enabled: | |||
|
496 | repo.ui.debug('fetching remote obsolete markers\n') | |||
|
497 | remoteobs = remote.listkeys('obsolete') | |||
|
498 | if 'dump0' in remoteobs: | |||
|
499 | tr = gettransaction() | |||
|
500 | for key in sorted(remoteobs, reverse=True): | |||
|
501 | if key.startswith('dump'): | |||
|
502 | data = base85.b85decode(remoteobs[key]) | |||
|
503 | repo.obsstore.mergemarkers(tr, data) | |||
|
504 | repo.invalidatevolatilesets() | |||
|
505 | return tr | |||
|
506 |
@@ -384,27 +384,6 b' def pushmarker(repo, key, old, new):' | |||||
384 | finally: |
|
384 | finally: | |
385 | lock.release() |
|
385 | lock.release() | |
386 |
|
386 | |||
387 | def syncpull(repo, remote, gettransaction): |
|
|||
388 | """utility function to pull obsolete markers from a remote |
|
|||
389 |
|
||||
390 | The `gettransaction` is function that return the pull transaction, creating |
|
|||
391 | one if necessary. We return the transaction to inform the calling code that |
|
|||
392 | a new transaction have been created (when applicable). |
|
|||
393 |
|
||||
394 | Exists mostly to allow overriding for experimentation purpose""" |
|
|||
395 | tr = None |
|
|||
396 | if _enabled: |
|
|||
397 | repo.ui.debug('fetching remote obsolete markers\n') |
|
|||
398 | remoteobs = remote.listkeys('obsolete') |
|
|||
399 | if 'dump0' in remoteobs: |
|
|||
400 | tr = gettransaction() |
|
|||
401 | for key in sorted(remoteobs, reverse=True): |
|
|||
402 | if key.startswith('dump'): |
|
|||
403 | data = base85.b85decode(remoteobs[key]) |
|
|||
404 | repo.obsstore.mergemarkers(tr, data) |
|
|||
405 | repo.invalidatevolatilesets() |
|
|||
406 | return tr |
|
|||
407 |
|
||||
408 | def allmarkers(repo): |
|
387 | def allmarkers(repo): | |
409 | """all obsolete markers known in a repository""" |
|
388 | """all obsolete markers known in a repository""" | |
410 | for markerdata in repo.obsstore: |
|
389 | for markerdata in repo.obsstore: |
General Comments 0
You need to be logged in to leave comments.
Login now