[PATCH] hgweb: fix the MRO in Python 3

Martijn Pieters mj at zopatista.com
Sat Oct 8 17:12:31 UTC 2016


# HG changeset patch
# User Martijn Pieters <mjpieters at fb.com>
# Date 1475946679 -7200
#      Sat Oct 08 19:11:19 2016 +0200
# Node ID 8475a954a40385035b57abe05af31308597a0b3c
# Parent  2c8ec8c2ddfeb2d229b81eb5b11e3639fb34b0a0
hgweb: fix the MRO in Python 3

object should appear at the end, otherwise it tries to pre-empt the other
new-style classes in the MRO, resulting in an unresolvable MRO in Py3. We still
need to include object because otherwise in 2.7 we end up with an old-style
class if threading is not supported, new-style if it is.

diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py
--- a/mercurial/hgweb/server.py
+++ b/mercurial/hgweb/server.py
@@ -263,7 +263,7 @@
         return open(opt, 'a')
     return default
 
-class MercurialHTTPServer(object, _mixin, httpservermod.httpserver):
+class MercurialHTTPServer(_mixin, httpservermod.httpserver, object):
 
     # SO_REUSEADDR has broken semantics on windows
     if os.name == 'nt':


More information about the Mercurial-devel mailing list