changeset 24785:39f519be5e65

subrepo: backout 93b0e0db7929 to restore reporelpath() The path for hgsubrepo needs to be calculated slightly differently from other subrepo types, but can reuse this. See the next patch for details.
author Matt Harbison <matt_harbison@yahoo.com>
date Wed, 15 Apr 2015 11:23:26 -0400
parents 59406b8b1303
children 56e15db9109f
files mercurial/subrepo.py
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/subrepo.py	Thu Apr 16 18:48:20 2015 -0500
+++ b/mercurial/subrepo.py	Wed Apr 15 11:23:26 2015 -0400
@@ -271,6 +271,13 @@
                % (subrelpath(sub), local, remote))
     return ui.promptchoice(msg, 0)
 
+def reporelpath(repo):
+    """return path to this (sub)repo as seen from outermost repo"""
+    parent = repo
+    while util.safehasattr(parent, '_subparent'):
+        parent = parent._subparent
+    return repo.root[len(pathutil.normasprefix(parent.root)):]
+
 def subrelpath(sub):
     """return path to this subrepo as seen from outermost repo"""
     return sub._relpath
@@ -551,13 +558,7 @@
     def _relpath(self):
         """return path to this subrepository as seen from outermost repository
         """
-        repo = self._ctx.repo()
-        parent = repo
-        while util.safehasattr(parent, '_subparent'):
-            parent = parent._subparent
-        reporelpath = repo.root[len(pathutil.normasprefix(parent.root)):]
-
-        return self.wvfs.reljoin(reporelpath, self._path)
+        return self.wvfs.reljoin(reporelpath(self._ctx.repo()), self._path)
 
 class hgsubrepo(abstractsubrepo):
     def __init__(self, ctx, path, state):