544 raise error.Abort(_("src repository does not support " |
544 raise error.Abort(_("src repository does not support " |
545 "revision lookup and so doesn't " |
545 "revision lookup and so doesn't " |
546 "support clone by revision")) |
546 "support clone by revision")) |
547 revs = [srcpeer.lookup(r) for r in rev] |
547 revs = [srcpeer.lookup(r) for r in rev] |
548 checkout = revs[0] |
548 checkout = revs[0] |
549 if destpeer.local(): |
549 local = destpeer.local() |
|
550 if local: |
550 if not stream: |
551 if not stream: |
551 if pull: |
552 if pull: |
552 stream = False |
553 stream = False |
553 else: |
554 else: |
554 stream = None |
555 stream = None |
555 destpeer.local().clone(srcpeer, heads=revs, stream=stream) |
556 # internal config: ui.quietbookmarkmove |
|
557 quiet = local.ui.backupconfig('ui', 'quietbookmarkmove') |
|
558 try: |
|
559 local.ui.setconfig( |
|
560 'ui', 'quietbookmarkmove', True, 'clone') |
|
561 exchange.pull(local, srcpeer, revs, |
|
562 streamclonerequested=stream) |
|
563 finally: |
|
564 local.ui.restoreconfig(quiet) |
556 elif srcrepo: |
565 elif srcrepo: |
557 exchange.push(srcrepo, destpeer, revs=revs, |
566 exchange.push(srcrepo, destpeer, revs=revs, |
558 bookmarks=srcrepo._bookmarks.keys()) |
567 bookmarks=srcrepo._bookmarks.keys()) |
559 else: |
568 else: |
560 raise error.Abort(_("clone from remote to remote not supported") |
569 raise error.Abort(_("clone from remote to remote not supported") |