Mercurial > hg-stable
comparison mercurial/subrepo.py @ 36715:b529e640015d
merge with stable
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 04 Mar 2018 10:42:51 -0500 |
parents | c6061cadb400 fb278041df06 |
children | 390d16ea7c76 |
comparison
equal
deleted
inserted
replaced
36714:2a258985ffeb | 36715:b529e640015d |
---|---|
619 srcurl = _abssource(self._repo) | 619 srcurl = _abssource(self._repo) |
620 other = hg.peer(self._repo, {}, srcurl) | 620 other = hg.peer(self._repo, {}, srcurl) |
621 if len(self._repo) == 0: | 621 if len(self._repo) == 0: |
622 # use self._repo.vfs instead of self.wvfs to remove .hg only | 622 # use self._repo.vfs instead of self.wvfs to remove .hg only |
623 self._repo.vfs.rmtree() | 623 self._repo.vfs.rmtree() |
624 if parentrepo.shared(): | 624 |
625 # A remote subrepo could be shared if there is a local copy | |
626 # relative to the parent's share source. But clone pooling doesn't | |
627 # assemble the repos in a tree, so that can't be consistently done. | |
628 # A simpler option is for the user to configure clone pooling, and | |
629 # work with that. | |
630 if parentrepo.shared() and hg.islocal(srcurl): | |
625 self.ui.status(_('sharing subrepo %s from %s\n') | 631 self.ui.status(_('sharing subrepo %s from %s\n') |
626 % (subrelpath(self), srcurl)) | 632 % (subrelpath(self), srcurl)) |
627 shared = hg.share(self._repo._subparent.baseui, | 633 shared = hg.share(self._repo._subparent.baseui, |
628 other, self._repo.root, | 634 other, self._repo.root, |
629 update=False, bookmarks=False) | 635 update=False, bookmarks=False) |
630 self._repo = shared.local() | 636 self._repo = shared.local() |
631 else: | 637 else: |
638 # TODO: find a common place for this and this code in the | |
639 # share.py wrap of the clone command. | |
640 if parentrepo.shared(): | |
641 pool = self.ui.config('share', 'pool') | |
642 if pool: | |
643 pool = util.expandpath(pool) | |
644 | |
645 shareopts = { | |
646 'pool': pool, | |
647 'mode': self.ui.config('share', 'poolnaming'), | |
648 } | |
649 else: | |
650 shareopts = {} | |
651 | |
632 self.ui.status(_('cloning subrepo %s from %s\n') | 652 self.ui.status(_('cloning subrepo %s from %s\n') |
633 % (subrelpath(self), srcurl)) | 653 % (subrelpath(self), srcurl)) |
634 other, cloned = hg.clone(self._repo._subparent.baseui, {}, | 654 other, cloned = hg.clone(self._repo._subparent.baseui, {}, |
635 other, self._repo.root, | 655 other, self._repo.root, |
636 update=False) | 656 update=False, shareopts=shareopts) |
637 self._repo = cloned.local() | 657 self._repo = cloned.local() |
638 self._initrepo(parentrepo, source, create=True) | 658 self._initrepo(parentrepo, source, create=True) |
639 self._cachestorehash(srcurl) | 659 self._cachestorehash(srcurl) |
640 else: | 660 else: |
641 self.ui.status(_('pulling subrepo %s from %s\n') | 661 self.ui.status(_('pulling subrepo %s from %s\n') |