hgweb: make paths wildcards expanding in a repo root match repo correctly
There was a trailing '/' too much when the wildcard part expanded to nothing.
The consequence was that the repo was announced but didn't work.
--- a/mercurial/hgweb/hgwebdir_mod.py Tue Feb 15 01:04:10 2011 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py Tue Feb 15 01:04:10 2011 +0100
@@ -41,16 +41,14 @@
"""yield url paths and filesystem paths from a list of repo paths
>>> list(urlrepos('hg', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
- [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg/', '/opt')]
+ [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg', '/opt')]
>>> list(urlrepos('', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
[('r', '/opt/r'), ('r/r', '/opt/r/r'), ('', '/opt')]
"""
for path in paths:
path = os.path.normpath(path)
- name = util.pconvert(path[len(roothead):]).strip('/')
- if prefix:
- name = prefix + '/' + name
- yield name, path
+ yield (prefix + '/' +
+ util.pconvert(path[len(roothead):]).lstrip('/')).strip('/'), path
class hgwebdir(object):
refreshinterval = 20
--- a/tests/test-hgwebdir.t Tue Feb 15 01:04:10 2011 +0100
+++ b/tests/test-hgwebdir.t Tue Feb 15 01:04:10 2011 +0100
@@ -99,6 +99,7 @@
> rcoll=$root/**
> star=*
> starstar=**
+ > astar=webdir/a/*
> EOF
$ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
> -A access-paths.log -E error-paths-2.log
@@ -130,6 +131,8 @@
/starstar/webdir/b/
/starstar/webdir/b/d/
/starstar/webdir/c/
+ /astar/
+ /astar/.hg/patches/
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=paper'
200 Script output follows
@@ -322,6 +325,22 @@
<td class="indexlinks"></td>
</tr>
+ <tr class="parity0">
+ <td><a href="/astar/?style=paper">astar</a></td>
+ <td>unknown</td>
+ <td>Foo Bar <foo.bar@example.com></td>
+ <td class="age">* ago</td> (glob)
+ <td class="indexlinks"></td>
+ </tr>
+
+ <tr class="parity1">
+ <td><a href="/astar/.hg/patches/?style=paper">astar/.hg/patches</a></td>
+ <td>unknown</td>
+ <td>Foo Bar <foo.bar@example.com></td>
+ <td class="age">* ago</td> (glob)
+ <td class="indexlinks"></td>
+ </tr>
+
</table>
</div>
</div>
@@ -470,7 +489,7 @@
a
-est [paths] '**' extension
+Test [paths] '**' extension
$ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw'
200 Script output follows
@@ -486,6 +505,12 @@
200 Script output follows
d
+
+Test [paths] '*' in a repo root
+
+ $ hg id http://localhost:$HGPORT1/astar
+ 8580ff50825a
+
$ "$TESTDIR/killdaemons.py"
$ cat > paths.conf <<EOF
> [paths]