mercurial/subrepo.py
changeset 24674 93b0e0db7929
parent 24673 105758d1b37b
child 24675 47e7d5fbbf04
equal deleted inserted replaced
24673:105758d1b37b 24674:93b0e0db7929
   269                  'use (l)ocal source (%s) or (r)emote source (%s)?'
   269                  'use (l)ocal source (%s) or (r)emote source (%s)?'
   270                  '$$ &Local $$ &Remote')
   270                  '$$ &Local $$ &Remote')
   271                % (subrelpath(sub), local, remote))
   271                % (subrelpath(sub), local, remote))
   272     return ui.promptchoice(msg, 0)
   272     return ui.promptchoice(msg, 0)
   273 
   273 
   274 def reporelpath(repo):
       
   275     """return path to this (sub)repo as seen from outermost repo"""
       
   276     parent = repo
       
   277     while util.safehasattr(parent, '_subparent'):
       
   278         parent = parent._subparent
       
   279     return repo.root[len(pathutil.normasprefix(parent.root)):]
       
   280 
       
   281 def subrelpath(sub):
   274 def subrelpath(sub):
   282     """return path to this subrepo as seen from outermost repo"""
   275     """return path to this subrepo as seen from outermost repo"""
   283     return sub._relpath
   276     return sub._relpath
   284 
   277 
   285 def _abssource(repo, push=False, abort=True):
   278 def _abssource(repo, push=False, abort=True):
   556 
   549 
   557     @propertycache
   550     @propertycache
   558     def _relpath(self):
   551     def _relpath(self):
   559         """return path to this subrepository as seen from outermost repository
   552         """return path to this subrepository as seen from outermost repository
   560         """
   553         """
   561         return self.wvfs.reljoin(reporelpath(self._ctx.repo()), self._path)
   554         repo = self._ctx.repo()
       
   555         parent = repo
       
   556         while util.safehasattr(parent, '_subparent'):
       
   557             parent = parent._subparent
       
   558         reporelpath = repo.root[len(pathutil.normasprefix(parent.root)):]
       
   559 
       
   560         return self.wvfs.reljoin(reporelpath, self._path)
   562 
   561 
   563 class hgsubrepo(abstractsubrepo):
   562 class hgsubrepo(abstractsubrepo):
   564     def __init__(self, ctx, path, state):
   563     def __init__(self, ctx, path, state):
   565         super(hgsubrepo, self).__init__(ctx, path)
   564         super(hgsubrepo, self).__init__(ctx, path)
   566         self._state = state
   565         self._state = state