# HG changeset patch # User Jim Hague # Date 1220038615 -3600 # Node ID 6b1ece890f9a67110a31c121fe3cbbc303053916 # Parent 0b72836b0384cf921ce759944d16629fc3d87848 Add support for Bugzilla 3.0 series to bugzilla hook. The only difference is 'fieldid' in table 'fielddefs' got renamed to 'id' for 3.0. diff -r 0b72836b0384 -r 6b1ece890f9a hgext/bugzilla.py --- a/hgext/bugzilla.py Wed Sep 10 13:52:33 2008 +0200 +++ b/hgext/bugzilla.py Fri Aug 29 20:36:55 2008 +0100 @@ -80,11 +80,7 @@ self.conn = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db, connect_timeout=timeout) self.cursor = self.conn.cursor() - self.run('select fieldid from fielddefs where name = "longdesc"') - ids = self.cursor.fetchall() - if len(ids) != 1: - raise util.Abort(_('unknown database schema')) - self.longdesc_id = ids[0][0] + self.longdesc_id = self.get_longdesc_id() self.user_ids = {} def run(self, *args, **kwargs): @@ -96,6 +92,14 @@ self.ui.note(_('failed query: %s %s\n') % (args, kwargs)) raise + def get_longdesc_id(self): + '''get identity of longdesc field''' + self.run('select fieldid from fielddefs where name = "longdesc"') + ids = self.cursor.fetchall() + if len(ids) != 1: + raise util.Abort(_('unknown database schema')) + return ids[0][0] + def filter_real_bug_ids(self, ids): '''filter not-existing bug ids from list.''' self.run('select bug_id from bugs where bug_id in %s' % buglist(ids)) @@ -182,11 +186,26 @@ values (%s, %s, %s, %s)''', (bugid, userid, now, self.longdesc_id)) +class bugzilla_3_0(bugzilla_2_16): + '''support for bugzilla 3.0 series.''' + + def __init__(self, ui): + bugzilla_2_16.__init__(self, ui) + + def get_longdesc_id(self): + '''get identity of longdesc field''' + self.run('select id from fielddefs where name = "longdesc"') + ids = self.cursor.fetchall() + if len(ids) != 1: + raise util.Abort(_('unknown database schema')) + return ids[0][0] + class bugzilla(object): # supported versions of bugzilla. different versions have # different schemas. _versions = { '2.16': bugzilla_2_16, + '3.0': bugzilla_3_0 } _default_bug_re = (r'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*'