[PATCH 1 of 2] subrepo: backout 93b0e0db7929 to restore reporelpath()

Matt Harbison matt_harbison at yahoo.com
Wed Apr 15 18:26:19 UTC 2015


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1429111406 14400
#      Wed Apr 15 11:23:26 2015 -0400
# Node ID 7f70e8f8239f813f5041210ff6395fae53e01971
# Parent  c560d8c687916cb70a6d54c2c9ddcb5c9e457be2
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.

diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -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):


More information about the Mercurial-devel mailing list