Enable demandimport only in scripts, not in importable modules (issue605)
This way other applications can choose if and when they want this feature,
because it might be problematic if those applications rely on ImportError.
--- a/contrib/hg-ssh
+++ b/contrib/hg-ssh
@@ -25,6 +25,9 @@ You can use pattern matching of your nor
command="cd repos && hg-ssh user/thomas/* projects/{mercurial,foo}"
"""
+# enable importing on demand to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
from mercurial import dispatch
import sys, os
--- a/contrib/hgwebdir.fcgi
+++ b/contrib/hgwebdir.fcgi
@@ -2,6 +2,9 @@
#
# An example CGI script to export multiple hgweb repos, edit as necessary
+# enable demandloading to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
# send python tracebacks to the browser if an error occurs:
import cgitb
cgitb.enable()
--- a/hg
+++ b/hg
@@ -7,5 +7,8 @@
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
+# enable importing on demand to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
import mercurial.dispatch
mercurial.dispatch.run()
--- a/hgweb.cgi
+++ b/hgweb.cgi
@@ -2,6 +2,9 @@
#
# An example CGI script to use hgweb, edit as necessary
+# enable importing on demand to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
# send python tracebacks to the browser if an error occurs:
import cgitb
cgitb.enable()
--- a/hgwebdir.cgi
+++ b/hgwebdir.cgi
@@ -2,6 +2,9 @@
#
# An example CGI script to export multiple hgweb repos, edit as necessary
+# enable importing on demand to reduce startup time
+from mercurial import demandimport; demandimport.enable()
+
# send python tracebacks to the browser if an error occurs:
import cgitb
cgitb.enable()
--- a/mercurial/hgweb/hgwebdir_mod.py
+++ b/mercurial/hgweb/hgwebdir_mod.py
@@ -6,7 +6,6 @@
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
-from mercurial import demandimport; demandimport.enable()
import os, mimetools, cStringIO
from mercurial.i18n import gettext as _
from mercurial import ui, hg, util, templater
--- a/setup.py
+++ b/setup.py
@@ -14,8 +14,6 @@ from distutils.core import setup, Extens
from distutils.command.install_data import install_data
import mercurial.version
-import mercurial.demandimport
-mercurial.demandimport.enable = lambda: None
extra = {}