diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -212,7 +212,7 @@ class hgweb(object): req.form['cmd'] = [tmpl.cache['default']] cmd = req.form['cmd'][0] - if cmd == 'file' and 'raw' in req.form['style']: + if cmd == 'file' and 'raw' in req.form.get('style', []): webcommands.rawfile(self, req, tmpl) else: getattr(webcommands, cmd)(self, req, tmpl) diff --git a/tests/test-hgweb-commands b/tests/test-hgweb-commands --- a/tests/test-hgweb-commands +++ b/tests/test-hgweb-commands @@ -27,6 +27,7 @@ echo % File-related "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw' "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw' "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw' +"$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo' | sed "s/[0-9]* years/many years/" "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw' echo % Overviews diff --git a/tests/test-hgweb-commands.out b/tests/test-hgweb-commands.out index ef6e92bbd6a030044496bcc9e1eeaf30ee14c202..326d8df07cad7af2196b263febeb5b826bf1fdc8 GIT binary patch literal 15005 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