components/mercurial/patches/demandimport.patch
author Danek Duvall <danek.duvall@oracle.com>
Tue, 29 Mar 2016 13:06:14 -0700
branchs11u3-sru
changeset 5721 153e2c170241
permissions -rw-r--r--
23018272 mercurial 3.7.3 21368629 hg diff is not interruptible 23018310 problem in UTILITY/HG
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5721
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
Mercurial's demandload system is incompatible with sqlalchemy.
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
This was reported upstream as
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
    https://bz.mercurial-scm.org/show_bug.cgi?id=5085
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
and is available in the upstream repository in changesets c25e3fd38ff1 and
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
9ff7261cc0f5.
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
--- a/mercurial/demandimport.py
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
+++ b/mercurial/demandimport.py
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
@@ -174,7 +174,12 @@ def _demandimport(name, globals=None, lo
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
             """
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
             symbol = getattr(mod, attr, nothing)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
             if symbol is nothing:
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
-                symbol = _demandmod(attr, mod.__dict__, locals, level=1)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
+                mn = '%s.%s' % (mod.__name__, attr)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
+                if mn in ignore:
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
+                    importfunc = _origimport
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
+                else:
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
+                    importfunc = _demandmod
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
+                symbol = importfunc(attr, mod.__dict__, locals, level=1)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
                 setattr(mod, attr, symbol)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
 
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
             # Record the importing module references this symbol so we can
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
@@ -250,6 +255,7 @@ ignore = [
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
     '_sre', # issue4920
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
     'rfc822',
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
     'mimetools',
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
+    'sqlalchemy.events', # has import-time side effects (issue5085)
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
     # setuptools 8 expects this module to explode early when not on windows
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
     'distutils.msvc9compiler'
153e2c170241 23018272 mercurial 3.7.3
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
     ]