diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py index 809c3e4a9e31f790af036c2a51e6ebb0894f504e_bWVyY3VyaWFsL2hnd2ViL2hnd2ViX21vZC5weQ==..1c2a8db33b8fdc69f4fa4fbb426d7dd88f45f4c7_bWVyY3VyaWFsL2hnd2ViL2hnd2ViX21vZC5weQ== 100644 --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -235,7 +235,7 @@ req.form['file'] = ['/'.join(args)] else: if args and args[0]: - node = args.pop(0) + node = args.pop(0).replace('%2F', '/') req.form['node'] = [node] if args: req.form['file'] = args diff --git a/tests/test-hgweb.t b/tests/test-hgweb.t index 809c3e4a9e31f790af036c2a51e6ebb0894f504e_dGVzdHMvdGVzdC1oZ3dlYi50..1c2a8db33b8fdc69f4fa4fbb426d7dd88f45f4c7_dGVzdHMvdGVzdC1oZ3dlYi50 100644 --- a/tests/test-hgweb.t +++ b/tests/test-hgweb.t @@ -10,6 +10,9 @@ $ hg ci -Ambase adding da/foo adding foo + $ hg bookmark -r0 '@' + $ hg bookmark -r0 'a b c' + $ hg bookmark -r0 'd/e/f' $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log $ cat hg.pid >> $DAEMON_PIDS @@ -264,7 +267,7 @@ <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> <h3> directory / @ 0:<a href="/rev/2ef0ac749a14">2ef0ac749a14</a> - <span class="tag">tip</span> + <span class="tag">tip</span> <span class="tag">@</span> <span class="tag">a b c</span> <span class="tag">d/e/f</span> </h3> <form class="search" action="/log"> @@ -557,6 +560,9 @@ summary: base branch: default tag: tip + bookmark: @ + bookmark: a b c + bookmark: d/e/f $ hg phase --draft tip @@ -580,6 +586,9 @@ user: test date: Thu, 01 Jan 1970 00:00:00 +0000 summary: base + bookmark: @ + bookmark: a b c + bookmark: d/e/f @@ -583,6 +592,24 @@ +access bookmarks + + $ get-with-headers.py localhost:$HGPORT 'rev/@?style=paper' | egrep '^200|changeset 0:' + 200 Script output follows + changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a> + + $ get-with-headers.py localhost:$HGPORT 'rev/%40?style=paper' | egrep '^200|changeset 0:' + 200 Script output follows + changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a> + + $ get-with-headers.py localhost:$HGPORT 'rev/a%20b%20c?style=paper' | egrep '^200|changeset 0:' + 200 Script output follows + changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a> + + $ get-with-headers.py localhost:$HGPORT 'rev/d%252Fe%252Ff?style=paper' | egrep '^200|changeset 0:' + 200 Script output follows + changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a> + no style can be loaded from directories other than the specified paths $ mkdir -p x/templates/fallback