hgwebdir: do not walk up the given path looking for a repository. It is there or it isn't.
authorBrendan Cully <brendan@kublai.com>
Fri, 06 Jul 2007 09:15:17 -0700
changeset 4832 4f86c58c6c56
parent 4831 13cb25bb7607
child 4833 40007fe82be9
hgwebdir: do not walk up the given path looking for a repository. It is there or it isn't.
mercurial/hgweb/hgwebdir_mod.py
--- a/mercurial/hgweb/hgwebdir_mod.py
+++ b/mercurial/hgweb/hgwebdir_mod.py
@@ -220,15 +220,7 @@ class hgwebdir(object):
                 req.write(staticfile(static, fname, req) or
                           tmpl('error', error='%r not found' % fname))
             elif virtual:
-                while virtual:
-                    real = dict(self.repos).get(virtual)
-                    if real:
-                        break
-                    up = virtual.rfind('/')
-                    if up < 0:
-                        break
-                    virtual = virtual[:up]
-                if real:
+                if virtual in dict(self.repos):
                     req.env['REPO_NAME'] = virtual
                     try:
                         repo = hg.repository(parentui, real)
@@ -238,7 +230,7 @@ class hgwebdir(object):
                     except hg.RepoError, inst:
                         req.write(tmpl("error", error=str(inst)))
                 else:
-                    subdir=req.env.get("PATH_INFO", "").strip('/') + '/'
+                    subdir=virtual + '/'
                     if [r for r in self.repos if r[0].startswith(subdir)]:
                         makeindex(req, subdir)
                     else: