<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://selenic.com/hg/</link>
    <language>en-us</language>

    <title>Mercurial: mercurial/hgweb/hgweb_mod.py history</title>
    <description>mercurial/hgweb/hgweb_mod.py revision history</description>
    <item>
    <title>hgweb: use ui.nontty to disable all cooked I/O</title>
    <link>http://selenic.com/hg/logd94c470c3deb/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: use ui.nontty to disable all cooked I/O]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 20 May 2012 14:37:22 -0500</pubDate>
</item>
<item>
    <title>cleanup: eradicate long lines</title>
    <link>http://selenic.com/hg/log525fdb738975/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[cleanup: eradicate long lines]]></description>
    <author>&#66;&#114;&#111;&#100;&#105;&#101;&#32;&#82;&#97;&#111;&#32;&#60;&#98;&#114;&#111;&#100;&#105;&#101;&#64;&#115;&#102;&#46;&#105;&#111;&#62;</author>
    <pubDate>Sat, 12 May 2012 15:54:54 +0200</pubDate>
</item>
<item>
    <title>merge with stable</title>
    <link>http://selenic.com/hg/logf6a737357195/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[merge with stable]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 01 Aug 2011 10:54:34 -0500</pubDate>
</item>
<item>
    <title>http2: send an extra header to signal a non-broken client</title>
    <link>http://selenic.com/hg/log4f39610996fa/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[http2: send an extra header to signal a non-broken client<br/>
<br/>
Some proxies strip the expect header because they forward requests in<br/>
a non-compliant way or as a way to defend against bogus clients.]]></description>
    <author>&#65;&#117;&#103;&#105;&#101;&#32;&#70;&#97;&#99;&#107;&#108;&#101;&#114;&#32;&#60;&#100;&#117;&#114;&#105;&#110;&#52;&#50;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 27 Jul 2011 18:35:35 -0500</pubDate>
</item>
<item>
    <title>hgweb_mod: use safehasattr instead of hasattr</title>
    <link>http://selenic.com/hg/log6ee6ecf1ee89/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb_mod: use safehasattr instead of hasattr]]></description>
    <author>&#65;&#117;&#103;&#105;&#101;&#32;&#70;&#97;&#99;&#107;&#108;&#101;&#114;&#32;&#60;&#100;&#117;&#114;&#105;&#110;&#52;&#50;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 25 Jul 2011 16:27:08 -0500</pubDate>
</item>
<item>
    <title>hgweb: add a &quot;web/logoimg&quot; setting to customize the web logo image</title>
    <link>http://selenic.com/hg/log44382887d012/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: add a &quot;web/logoimg&quot; setting to customize the web logo image<br/>
<br/>
This change complements the existing web/logourl setting, and lets the user<br/>
customize the logo image that is shown on many of the hg server pages.<br/>
<br/>
If this setting is not set, hglogo.png is used.]]></description>
    <author>&#65;&#110;&#103;&#101;&#108;&#32;&#69;&#122;&#113;&#117;&#101;&#114;&#114;&#97;&#32;&#60;&#97;&#110;&#103;&#101;&#108;&#46;&#101;&#122;&#113;&#117;&#101;&#114;&#114;&#97;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 21 Jul 2011 15:10:16 +0200</pubDate>
</item>
<item>
    <title>hgweb: support disabling page cache</title>
    <link>http://selenic.com/hg/loga1c31c64bcd3/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: support disabling page cache<br/>
<br/>
By default, hgweb_mod supports caching via the ETag header. This can<br/>
cause some confusion with browsers which cache aggressively. This change<br/>
preserves existing behavior while giving the administrator a knob to<br/>
disable the ETag header.]]></description>
    <author>&#83;&#116;&#101;&#118;&#101;&#110;&#32;&#83;&#116;&#97;&#108;&#108;&#105;&#111;&#110;&#32;&#60;&#115;&#115;&#116;&#97;&#108;&#108;&#105;&#111;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 20 Apr 2011 00:01:50 -0400</pubDate>
</item>
<item>
    <title>hgweb: support alternate logo url</title>
    <link>http://selenic.com/hg/log616ad3f6fd33/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: support alternate logo url<br/>
<br/>
Clicking on the logo image/text in the hgweb interface brings the<br/>
user to the Mercurial project page. The majority of users expect that<br/>
this would bring them to the top level index. I have added a new template<br/>
variable named `logourl' which allows an administrator to change this<br/>
behavior. To stay compatible with existing behavior, `logourl' will<br/>
default to http://mercurial.selenic.com/. This change is very useful in<br/>
large installations where jumping to the index is common.]]></description>
    <author>&#83;&#116;&#101;&#118;&#101;&#110;&#32;&#83;&#116;&#97;&#108;&#108;&#105;&#111;&#110;&#32;&#60;&#115;&#115;&#116;&#97;&#108;&#108;&#105;&#111;&#110;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 19 Apr 2011 23:37:06 -0400</pubDate>
</item>
<item>
    <title>merge with stable</title>
    <link>http://selenic.com/hg/log141f88ae5276/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[merge with stable]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#71;&#101;&#105;&#115;&#108;&#101;&#114;&#32;&#60;&#109;&#103;&#64;&#108;&#97;&#122;&#121;&#98;&#121;&#116;&#101;&#115;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Tue, 19 Apr 2011 15:19:54 +0200</pubDate>
</item>
<item>
    <title>hgweb: detect change based on changelog size too</title>
    <link>http://selenic.com/hg/log71f51cc71652/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: detect change based on changelog size too<br/>
<br/>
Before, there was a race between an access and a modification made<br/>
within the same second.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#71;&#101;&#105;&#115;&#108;&#101;&#114;&#32;&#60;&#109;&#103;&#64;&#108;&#97;&#122;&#121;&#98;&#121;&#116;&#101;&#115;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Tue, 19 Apr 2011 15:15:56 +0200</pubDate>
</item>
<item>
    <title>wireproto: add getbundle() function</title>
    <link>http://selenic.com/hg/logb51bf961b3cb/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[wireproto: add getbundle() function<br/>
<br/>
  getbundle(common, heads) -&gt; bundle<br/>
<br/>
Returns the changegroup for all ancestors of heads which are not ancestors of common. For both<br/>
sets, the heads are included in the set.<br/>
<br/>
Intended to eventually supercede changegroupsubset and changegroup. Uses heads of common region<br/>
to exclude unwanted changesets instead of bases of desired region, which is more useful and<br/>
easier to implement.<br/>
<br/>
Designed to be extensible with new optional arguments (which will have to be guarded by<br/>
corresponding capabilities).]]></description>
    <author>&#80;&#101;&#116;&#101;&#114;&#32;&#65;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#32;&#60;&#112;&#101;&#116;&#101;&#114;&#46;&#97;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 23 Mar 2011 16:02:11 +0100</pubDate>
</item>
<item>
    <title>hgweb_mod: respond right away if the client specified 100-continue support</title>
    <link>http://selenic.com/hg/log84bd3fd63afc/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb_mod: respond right away if the client specified 100-continue support<br/>
<br/>
Clients that send 100-continue should make sure they really support<br/>
continue intelligently. In a later patch we'll introduce a capability so<br/>
new clients don't pay a performance penalty talking to old servers.]]></description>
    <author>&#65;&#117;&#103;&#105;&#101;&#32;&#70;&#97;&#99;&#107;&#108;&#101;&#114;&#32;&#60;&#100;&#117;&#114;&#105;&#110;&#52;&#50;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Jan 2011 15:19:21 -0600</pubDate>
</item>
<item>
    <title>hgweb: handle invalid requests with both form data and querystring</title>
    <link>http://selenic.com/hg/log61a898576888/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: handle invalid requests with both form data and querystring<br/>
<br/>
Invalid requests could give an unhandled ErrorResponse.<br/>
<br/>
Now this ErrorResponse is handled like other ErrorResponses so the client gets<br/>
an error message which also is logged on the server.]]></description>
    <author>&#77;&#97;&#100;&#115;&#32;&#75;&#105;&#105;&#108;&#101;&#114;&#105;&#99;&#104;&#32;&#60;&#109;&#97;&#100;&#115;&#64;&#107;&#105;&#105;&#108;&#101;&#114;&#105;&#99;&#104;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 21 Feb 2011 00:57:19 +0100</pubDate>
</item>
<item>
    <title>hgweb: don't send a body or illegal headers during 304 response</title>
    <link>http://selenic.com/hg/log8dcd3203a261/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: don't send a body or illegal headers during 304 response<br/>
<br/>
Without this fix, mod_wsgi and spawning get in a wedged state after<br/>
sending a 304 response. Not sending a body fixed that problem. The<br/>
header change was discovered by using wsgiref.validate.validator to<br/>
check for other errors.]]></description>
    <author>&#65;&#117;&#103;&#105;&#101;&#32;&#70;&#97;&#99;&#107;&#108;&#101;&#114;&#32;&#60;&#100;&#117;&#114;&#105;&#110;&#52;&#50;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 16 Oct 2010 17:29:04 -0500</pubDate>
</item>
<item>
    <title>hgweb: another fix for the help termwidth bug</title>
    <link>http://selenic.com/hg/logef969e58a394/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: another fix for the help termwidth bug]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 10 Oct 2010 17:35:28 -0500</pubDate>
</item>
<item>
    <title>hgweb: fix hgweb_mod as well as hgwebdir_mod</title>
    <link>http://selenic.com/hg/log1b1a9038a71a/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: fix hgweb_mod as well as hgwebdir_mod]]></description>
    <author>&#65;&#117;&#103;&#105;&#101;&#32;&#70;&#97;&#99;&#107;&#108;&#101;&#114;&#32;&#60;&#100;&#117;&#114;&#105;&#110;&#52;&#50;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 10 Oct 2010 10:42:44 -0500</pubDate>
</item>
<item>
    <title>merge with stable</title>
    <link>http://selenic.com/hg/logaa0d842b4f5d/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[merge with stable]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 27 Sep 2010 10:48:50 -0500</pubDate>
</item>
<item>
    <title>Correct Content-Type header values for archive downloads.</title>
    <link>http://selenic.com/hg/loga72c5ff1260c/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[Correct Content-Type header values for archive downloads.<br/>
<br/>
The content type for both .tar.gz and .tar.bz2 downloads was<br/>
application/x-tar, which is correct for .tar files when no<br/>
Content-Encoding is present, but is not correct for .tar.gz and .tar.bz2<br/>
files unless Content-Encoding is set to gzip or x-bzip2, respectively.<br/>
<br/>
However, setting Content-Encoding causes browsers to undo that encoding<br/>
during download, when a .gz or .bz2 file is usually the desired<br/>
artifact.  Omitting the Content-Encoding header is preferred to avoid<br/>
having browsers uncompress non-render-able files.<br/>
<br/>
Additionally, the Content-Disposition line indicates a final desired<br/>
filename with .tar.gz or .tar.bz2 extension which makes providing a<br/>
Content-Encoding header inappropriate.<br/>
<br/>
With the current configuration browsers (Chrome and Firefox thus far)<br/>
are registering the application/x-tar Content-Type and not .tar<br/>
extension and appending that extension, yielding filename.tar.gz.tar as<br/>
a final on-disk artifact.  This was originally reported here:<br/>
http://stackoverflow.com/questions/3753659<br/>
<br/>
I've changed the .tar.gz and .tar.bz2 Content-Type values to<br/>
application/x-gzip and application/x-bzip2, respectively.  Which yields<br/>
correctly named download artifacts on Firefox, Chrome, and IE.]]></description>
    <author>&#82;&#121;&#52;&#97;&#110;&#32;&#66;&#114;&#97;&#115;&#101;&#32;&#60;&#114;&#121;&#52;&#97;&#110;&#45;&#104;&#103;&#64;&#114;&#121;&#52;&#97;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Mon, 20 Sep 2010 14:56:08 -0500</pubDate>
</item>
<item>
    <title>hgweb: support very simple caching model (issue1845)</title>
    <link>http://selenic.com/hg/logf64b416b0ac8/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: support very simple caching model (issue1845)]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Wed, 08 Sep 2010 15:23:48 +0200</pubDate>
</item>
<item>
    <title>cleanup: remove unused imports</title>
    <link>http://selenic.com/hg/logc327bfa5e831/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[cleanup: remove unused imports]]></description>
    <author>&#66;&#114;&#111;&#100;&#105;&#101;&#32;&#82;&#97;&#111;&#32;&#60;&#98;&#114;&#111;&#100;&#105;&#101;&#64;&#98;&#105;&#116;&#104;&#101;&#97;&#112;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Fri, 27 Aug 2010 13:32:38 -0400</pubDate>
</item>
<item>
    <title>protocol: move hgweb protocol support back into protocol.py</title>
    <link>http://selenic.com/hg/log368cd5325348/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[protocol: move hgweb protocol support back into protocol.py<br/>
<br/>
- introduce iscmd<br/>
- simplify error handling<br/>
- remove unneeded imports]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 15 Jul 2010 15:05:04 -0500</pubDate>
</item>
<item>
    <title>protocol: unify unbundle on the server side</title>
    <link>http://selenic.com/hg/logd054cc5c7737/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[protocol: unify unbundle on the server side]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 15 Jul 2010 11:24:42 -0500</pubDate>
</item>
<item>
    <title>protocol: unify stream_out command</title>
    <link>http://selenic.com/hg/log5d907fbb9703/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[protocol: unify stream_out command]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 14 Jul 2010 16:19:27 -0500</pubDate>
</item>
<item>
    <title>protocol: unify changegroup commands</title>
    <link>http://selenic.com/hg/log1af96b090116/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[protocol: unify changegroup commands<br/>
<br/>
- add sendchangegroup protocol helpers<br/>
- handle commands with None results<br/>
- move changegroup commands into wireproto.py]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 14 Jul 2010 15:43:20 -0500</pubDate>
</item>
<item>
    <title>protocol: use new wireproto infrastructure in ssh</title>
    <link>http://selenic.com/hg/log26c7d4fc31bf/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[protocol: use new wireproto infrastructure in ssh<br/>
<br/>
- add protocol helper<br/>
- insert wireproto into dispatcher<br/>
- drop duplicate functions from hgweb implementation]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 14 Jul 2010 15:25:15 -0500</pubDate>
</item>
<item>
    <title>pushkey: add http support</title>
    <link>http://selenic.com/hg/logdb3f6f0e4e7d/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[pushkey: add http support<br/>
<br/>
pushkey requires the same permissions as push<br/>
listitems requires the same permissions as pull]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 16 Jun 2010 16:05:19 -0500</pubDate>
</item>
<item>
    <title>hgweb: always clear report_untrusted and interactive</title>
    <link>http://selenic.com/hg/log5efbfa662b3c/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: always clear report_untrusted and interactive]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 26 Apr 2010 11:03:40 -0500</pubDate>
</item>
<item>
    <title>hgweb: add baseui to hgweb entrypoint</title>
    <link>http://selenic.com/hg/logc12a57c1a67e/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: add baseui to hgweb entrypoint]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 26 Apr 2010 11:03:40 -0500</pubDate>
</item>
<item>
    <title>pylint, pyflakes: remove unused or duplicate imports</title>
    <link>http://selenic.com/hg/log13a1b2fb7ef2/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[pylint, pyflakes: remove unused or duplicate imports]]></description>
    <author>&#78;&#105;&#99;&#111;&#108;&#97;&#115;&#32;&#68;&#117;&#109;&#97;&#122;&#101;&#116;&#32;&#60;&#110;&#105;&#99;&#100;&#117;&#109;&#122;&#46;&#99;&#111;&#109;&#109;&#105;&#116;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 14 Apr 2010 17:58:10 +0900</pubDate>
</item>
<item>
    <title>many, many trivial check-code fixups</title>
    <link>http://selenic.com/hg/log08a0f04b56bd/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[many, many trivial check-code fixups]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 25 Jan 2010 00:05:27 -0600</pubDate>
</item>
<item>
    <title>Merge with stable</title>
    <link>http://selenic.com/hg/logd6512b3e9ac0/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[Merge with stable]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 19 Jan 2010 22:45:09 -0600</pubDate>
</item>
<item>
    <title>Update license to GPLv2+</title>
    <link>http://selenic.com/hg/log25e572394f5c/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[Update license to GPLv2+]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 19 Jan 2010 22:20:08 -0600</pubDate>
</item>
<item>
    <title>hgweb: Make get_mtime use repository to find store path.</title>
    <link>http://selenic.com/hg/log97c75ad3b1a0/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: Make get_mtime use repository to find store path.<br/>
<br/>
It was calculating it directly, which is redundant and caused<br/>
it to break with shared repositories.]]></description>
    <author>&#66;&#114;&#101;&#110;&#100;&#97;&#110;&#32;&#67;&#117;&#108;&#108;&#121;&#32;&#60;&#98;&#114;&#101;&#110;&#100;&#97;&#110;&#64;&#107;&#117;&#98;&#108;&#97;&#105;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 15 Dec 2009 12:33:04 -0800</pubDate>
</item>
<item>
    <title>hgweb: add support for extension-provided permission hooks</title>
    <link>http://selenic.com/hg/log6f92997dbdca/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: add support for extension-provided permission hooks<br/>
<br/>
This allows extensions to hook into permission checking, providing both<br/>
authentication and authorization as needed. The existing authorization<br/>
function has been changed to a hook, which is added by default.]]></description>
    <author>&#83;&#117;&#110;&#101;&#32;&#70;&#111;&#108;&#100;&#97;&#103;&#101;&#114;&#32;&#60;&#99;&#114;&#121;&#111;&#64;&#99;&#121;&#97;&#110;&#105;&#116;&#101;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Mon, 23 Nov 2009 11:03:55 +0100</pubDate>
</item>
<item>
    <title>hgweb: fix error in 38170eeed18c and introduce test for change</title>
    <link>http://selenic.com/hg/log510122bb3c7f/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: fix error in 38170eeed18c and introduce test for change]]></description>
    <author>&#72;&#101;&#110;&#114;&#105;&#107;&#32;&#83;&#116;&#117;&#97;&#114;&#116;&#32;&#60;&#104;&#103;&#64;&#104;&#115;&#116;&#117;&#97;&#114;&#116;&#46;&#100;&#107;&#62;</author>
    <pubDate>Thu, 19 Nov 2009 15:54:57 +0100</pubDate>
</item>
<item>
    <title>ui: add environ property to access os.environ or wsgirequest.environ</title>
    <link>http://selenic.com/hg/log38170eeed18c/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[ui: add environ property to access os.environ or wsgirequest.environ<br/>
<br/>
The property returns os.environ by default, and is propagated by ui.copy.<br/>
During hgweb processing, ui.environ is set to the proper WSGI-request<br/>
environment, as contained in wsgirequest.environ. For CGI, this is the<br/>
same as os.environ.<br/>
<br/>
The property is meant to be read-only, as with os.environ (generally).]]></description>
    <author>&#83;&#117;&#110;&#101;&#32;&#70;&#111;&#108;&#100;&#97;&#103;&#101;&#114;&#32;&#60;&#99;&#114;&#121;&#111;&#64;&#99;&#121;&#97;&#110;&#105;&#116;&#101;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Thu, 19 Nov 2009 10:32:33 +0100</pubDate>
</item>
<item>
    <title>hgweb: don't choke when an inexistent style is requested (issue1901)</title>
    <link>http://selenic.com/hg/logd3dbdca92458/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: don't choke when an inexistent style is requested (issue1901)]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Thu, 12 Nov 2009 16:39:11 +0100</pubDate>
</item>
<item>
    <title>hgweb: treat rev as raw-rev if user agent is hg</title>
    <link>http://selenic.com/hg/log0e080d519d1b/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: treat rev as raw-rev if user agent is hg]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Fri, 06 Nov 2009 22:46:46 +0100</pubDate>
</item>
<item>
    <title>hgweb: deny cloning a subpath of a repo</title>
    <link>http://selenic.com/hg/log36654238c050/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: deny cloning a subpath of a repo]]></description>
    <author>&#66;&#101;&#110;&#111;&#105;&#116;&#32;&#66;&#111;&#105;&#115;&#115;&#105;&#110;&#111;&#116;&#32;&#60;&#98;&#101;&#110;&#111;&#105;&#116;&#46;&#98;&#111;&#105;&#115;&#115;&#105;&#110;&#111;&#116;&#64;&#101;&#110;&#115;&#45;&#108;&#121;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Sat, 20 Jun 2009 16:42:51 -0500</pubDate>
</item>
<item>
    <title>hgweb: web.encoding should override encoding.encoding (issue1183)</title>
    <link>http://selenic.com/hg/log580a79dde2a3/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: web.encoding should override encoding.encoding (issue1183)]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 20 Jun 2009 13:00:25 -0500</pubDate>
</item>
<item>
    <title>wrap string literals in error messages</title>
    <link>http://selenic.com/hg/log45f626a39def/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[wrap string literals in error messages]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#71;&#101;&#105;&#115;&#108;&#101;&#114;&#32;&#60;&#109;&#103;&#64;&#108;&#97;&#122;&#121;&#98;&#121;&#116;&#101;&#115;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 31 May 2009 01:30:16 +0200</pubDate>
</item>
<item>
    <title>drop unused imports</title>
    <link>http://selenic.com/hg/logbeae42f3d93b/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[drop unused imports]]></description>
    <author>&#80;&#101;&#116;&#101;&#114;&#32;&#65;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#32;&#60;&#112;&#101;&#116;&#101;&#114;&#46;&#97;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 14 May 2009 15:35:46 +0200</pubDate>
</item>
<item>
    <title>templater: provide the standard template filters by default</title>
    <link>http://selenic.com/hg/logacc202b71619/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[templater: provide the standard template filters by default]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Tue, 12 May 2009 12:04:05 +0200</pubDate>
</item>
<item>
    <title>updated license to be explicit about GPL version 2</title>
    <link>http://selenic.com/hg/log46293a0c7e9f/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[updated license to be explicit about GPL version 2]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#71;&#101;&#105;&#115;&#108;&#101;&#114;&#32;&#60;&#109;&#103;&#64;&#108;&#97;&#122;&#121;&#98;&#121;&#116;&#101;&#115;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 26 Apr 2009 01:08:54 +0200</pubDate>
</item>
<item>
    <title>hgweb: kill parentui references</title>
    <link>http://selenic.com/hg/log35604226d712/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: kill parentui references]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 26 Apr 2009 16:50:43 -0500</pubDate>
</item>
<item>
    <title>ui: refactor option setting</title>
    <link>http://selenic.com/hg/log6b5522cb2ad2/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[ui: refactor option setting<br/>
<br/>
No more passing options as constructor keywords. Basic options are now<br/>
always stored in the overlay for simplicity and consistency.]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Apr 2009 15:40:10 -0500</pubDate>
</item>
<item>
    <title>templater: move stylemap function from hgweb to templater</title>
    <link>http://selenic.com/hg/logaa983c3d94a9/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[templater: move stylemap function from hgweb to templater]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Sat, 04 Apr 2009 17:46:11 +0200</pubDate>
</item>
<item>
    <title>move encoding bits from util to encoding</title>
    <link>http://selenic.com/hg/logde377b1a9a84/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[move encoding bits from util to encoding<br/>
<br/>
In addition to cleaning up util, this gets rid of some circular dependencies.]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 03 Apr 2009 14:51:48 -0500</pubDate>
</item>
<item>
    <title>cleanup: drop unused imports</title>
    <link>http://selenic.com/hg/log4a4c7f6a5912/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[cleanup: drop unused imports]]></description>
    <author>&#80;&#101;&#116;&#101;&#114;&#32;&#65;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#32;&#60;&#112;&#101;&#116;&#101;&#114;&#46;&#97;&#114;&#114;&#101;&#110;&#98;&#114;&#101;&#99;&#104;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 23 Mar 2009 13:12:07 +0100</pubDate>
</item>
<item>
    <title>hgweb: fix allow_read permissions when a user is specified</title>
    <link>http://selenic.com/hg/logb5ed0ab8cc74/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: fix allow_read permissions when a user is specified<br/>
<br/>
Thanks to Juan Pablo Aroztegi for reporting and debugging it.]]></description>
    <author>&#66;&#101;&#110;&#111;&#105;&#116;&#32;&#66;&#111;&#105;&#115;&#115;&#105;&#110;&#111;&#116;&#32;&#60;&#98;&#101;&#110;&#111;&#105;&#116;&#46;&#98;&#111;&#105;&#115;&#115;&#105;&#110;&#111;&#116;&#64;&#101;&#110;&#115;&#45;&#108;&#121;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Sat, 07 Mar 2009 00:59:41 +0100</pubDate>
</item>
<item>
    <title>hgweb: pass ErrorResponses directly into req.respond()</title>
    <link>http://selenic.com/hg/log176d3d681702/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: pass ErrorResponses directly into req.respond()]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Mon, 09 Feb 2009 11:29:09 +0100</pubDate>
</item>
<item>
    <title>error: move repo errors</title>
    <link>http://selenic.com/hg/log1d54e2f6c0b7/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[error: move repo errors<br/>
<br/>
rename NoCapability to CapabilityError]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 12 Jan 2009 10:42:31 -0600</pubDate>
</item>
<item>
    <title>errors: move revlog errors</title>
    <link>http://selenic.com/hg/log08cabecfa8a8/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[errors: move revlog errors<br/>
<br/>
- create error.py for exception classes to reduce demandloading<br/>
- move revlog exceptions to it<br/>
- change users to import error and drop revlog import if possible]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 11 Jan 2009 22:48:28 -0600</pubDate>
</item>
<item>
    <title>hgweb: fix long line lengths introduced in 2dc868712dcc</title>
    <link>http://selenic.com/hg/log3ccaefc84f45/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: fix long line lengths introduced in 2dc868712dcc]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Sat, 03 Jan 2009 21:44:15 +0100</pubDate>
</item>
<item>
    <title>hgweb: send HTTP unauthorized error when denying pull</title>
    <link>http://selenic.com/hg/logbbcd2dea19fe/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: send HTTP unauthorized error when denying pull]]></description>
    <author>&#77;&#97;&#114;&#107;&#32;&#69;&#100;&#103;&#105;&#110;&#103;&#116;&#111;&#110;&#32;&#60;&#101;&#100;&#103;&#105;&#109;&#97;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 03 Jan 2009 20:50:06 +0100</pubDate>
</item>
<item>
    <title>hgweb: allow static content when deny_read denies access</title>
    <link>http://selenic.com/hg/logb663b5563de7/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: allow static content when deny_read denies access]]></description>
    <author>&#77;&#97;&#114;&#107;&#32;&#69;&#100;&#103;&#105;&#110;&#103;&#116;&#111;&#110;&#32;&#60;&#101;&#100;&#103;&#105;&#109;&#97;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 03 Jan 2009 20:33:19 +0100</pubDate>
</item>
<item>
    <title>templater: return data in increasing chunk sizes</title>
    <link>http://selenic.com/hg/log526c40a74bd0/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[templater: return data in increasing chunk sizes<br/>
<br/>
Currently hgweb is not streaming its output -- it accumulates the<br/>
entire response before sending it. This patch restores streaming<br/>
behaviour. To avoid having to synchronously write many tiny fragments,<br/>
this patch also adds buffering to the template generator. Local<br/>
testing of a fetch of a 100,000 line file with wget produces a slight<br/>
slowdown overall (up from 6.5 seconds to 7.2 seconds), but instead of<br/>
waiting 6 seconds for headers to arrive, output begins immediately.]]></description>
    <author>&#66;&#114;&#101;&#110;&#100;&#97;&#110;&#32;&#67;&#117;&#108;&#108;&#121;&#32;&#60;&#98;&#114;&#101;&#110;&#100;&#97;&#110;&#64;&#107;&#117;&#98;&#108;&#97;&#105;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 21 Nov 2008 15:51:40 -0800</pubDate>
</item>
<item>
    <title>merge with mpm</title>
    <link>http://selenic.com/hg/log1a5c9ca2bfd5/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[merge with mpm]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Sat, 08 Nov 2008 00:29:04 +0100</pubDate>
</item>
<item>
    <title>hgweb: fix up the less/more links on the graph page</title>
    <link>http://selenic.com/hg/log55651328dfcc/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: fix up the less/more links on the graph page<br/>
<br/>
Previously, they pointed to a non-intuitive revision, and got borked when<br/>
using a URL-specified style combined with alternate revcounts.]]></description>
    <author>&#68;&#105;&#114;&#107;&#106;&#97;&#110;&#32;&#79;&#99;&#104;&#116;&#109;&#97;&#110;&#32;&#60;&#100;&#105;&#114;&#107;&#106;&#97;&#110;&#64;&#111;&#99;&#104;&#116;&#109;&#97;&#110;&#46;&#110;&#108;&#62;</author>
    <pubDate>Fri, 07 Nov 2008 23:31:12 +0100</pubDate>
</item>
<item>
    <title>hgweb: Change default style to paper</title>
    <link>http://selenic.com/hg/logfeb0b76b6717/mercurial/hgweb/hgweb_mod.py</link>
    <description><![CDATA[hgweb: Change default style to paper]]></description>
    <author>&#77;&#97;&#116;&#116;&#32;&#77;&#97;&#99;&#107;&#97;&#108;&#108;&#32;&#60;&#109;&#112;&#109;&#64;&#115;&#101;&#108;&#101;&#110;&#105;&#99;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Nov 2008 11:56:01 -0600</pubDate>
</item>

  </channel>
</rss>

