# HG changeset patch # User Vadim Gelfer # Date 1146693367 25200 # Node ID afe24f5b7a9e5fe36ed12228a085427f655791b7 # Parent 2be3ac7abc210595efc271c06dd261cc08c11a28 only import mysql module if hook used. diff --git a/hgext/bugzilla.py b/hgext/bugzilla.py --- a/hgext/bugzilla.py +++ b/hgext/bugzilla.py @@ -44,10 +44,7 @@ from mercurial.i18n import gettext as _ from mercurial.node import * demandload(globals(), 'cStringIO mercurial:templater,util os re time') -try: - import MySQLdb -except ImportError: - raise util.Abort(_('python mysql support not available')) +MySQLdb = None def buglist(ids): return '(' + ','.join(map(str, ids)) + ')' @@ -275,6 +272,13 @@ def hook(ui, repo, hooktype, node=None, '''add comment to bugzilla for each changeset that refers to a bugzilla bug id. only add a comment once per bug, so same change seen multiple times does not fill bug with duplicate data.''' + try: + import MySQLdb as mysql + global MySQLdb + MySQLdb = mysql + except ImportError, err: + raise util.Abort(_('python mysql support not available: %s') % err) + if node is None: raise util.Abort(_('hook type %s does not pass a changeset id') % hooktype)