# HG changeset patch # User Matt Harbison # Date 1415241225 18000 # Node ID a0ccb66f344db6351395b5150ecfd13b24071410 # Parent 32dadb2637f4623eac27544880670c88b6ab1ffb hgweb: fix a crash when using web.archivesubrepos A matcher is required when enabling the subrepo option on archival.archive(), because that calls match.narrowmatcher(), which accesses fields on the object. It's therefore probably a bad idea to default the matcher to None on archive(), but that's a fix for default. diff -r 32dadb2637f4 -r a0ccb66f344d mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Wed Nov 05 20:31:58 2014 -0500 +++ b/mercurial/hgweb/webcommands.py Wed Nov 05 21:33:45 2014 -0500 @@ -901,7 +901,7 @@ ctx = webutil.changectx(web.repo, req) pats = [] - matchfn = None + matchfn = scmutil.match(ctx, []) file = req.form.get('file', None) if file: pats = ['path:' + file[0]] diff -r 32dadb2637f4 -r a0ccb66f344d tests/test-archive.t --- a/tests/test-archive.t Wed Nov 05 20:31:58 2014 -0500 +++ b/tests/test-archive.t Wed Nov 05 21:33:45 2014 -0500 @@ -20,6 +20,7 @@ $ hg ci -m "add subrepo" $ echo "[web]" >> .hg/hgrc $ echo "name = test-archive" >> .hg/hgrc + $ echo "archivesubrepos = True" >> .hg/hgrc $ cp .hg/hgrc .hg/hgrc-base > test_archtype() { > echo "allow_archive = $1" >> .hg/hgrc @@ -95,6 +96,7 @@ test-archive-1701ef1f1510/bar test-archive-1701ef1f1510/baz/bletch test-archive-1701ef1f1510/foo + test-archive-1701ef1f1510/subrepo/sub $ python getarchive.py "$TIP" bz2 | bunzip2 | tar tf - 2>/dev/null test-archive-1701ef1f1510/.hg_archival.txt test-archive-1701ef1f1510/.hgsub @@ -102,6 +104,7 @@ test-archive-1701ef1f1510/bar test-archive-1701ef1f1510/baz/bletch test-archive-1701ef1f1510/foo + test-archive-1701ef1f1510/subrepo/sub $ python getarchive.py "$TIP" zip > archive.zip $ unzip -t archive.zip Archive: archive.zip @@ -111,6 +114,7 @@ testing: test-archive-1701ef1f1510/bar OK testing: test-archive-1701ef1f1510/baz/bletch OK testing: test-archive-1701ef1f1510/foo OK + testing: test-archive-1701ef1f1510/subrepo/sub OK No errors detected in compressed data of archive.zip. test that we can download single directories and files