subrepo: avoid false unsafe path detection on Windows
Subrepo paths are not normalized for the OS, so what was happening in the
subsequent root path check was:
root -> $TESTTMP\
issue1852a\sub/repo
util.expandpath(...) -> $TESTTMP\
issue1852a\sub/repo
os.path.realpath(...) -> $TESTTMP\
issue1852a\sub\repo
--- a/mercurial/subrepo.py Fri Feb 01 13:44:09 2019 -0500
+++ b/mercurial/subrepo.py Tue Feb 05 20:50:54 2019 -0500
@@ -405,7 +405,7 @@
super(hgsubrepo, self).__init__(ctx, path)
self._state = state
r = ctx.repo()
- root = r.wjoin(path)
+ root = r.wjoin(util.localpath(path))
create = allowcreate and not r.wvfs.exists('%s/.hg' % path)
# repository constructor does expand variables in path, which is
# unsafe since subrepo path might come from untrusted source.