equal
deleted
inserted
replaced
119 ui.traceback() |
119 ui.traceback() |
120 |
120 |
121 # attributes set by registrar.command |
121 # attributes set by registrar.command |
122 _cmdfuncattrs = ('norepo', 'optionalrepo', 'inferrepo') |
122 _cmdfuncattrs = ('norepo', 'optionalrepo', 'inferrepo') |
123 |
123 |
124 def _validatecmdtable(cmdtable): |
124 def _validatecmdtable(ui, cmdtable): |
125 """Check if extension commands have required attributes""" |
125 """Check if extension commands have required attributes""" |
126 for c, e in cmdtable.iteritems(): |
126 for c, e in cmdtable.iteritems(): |
127 f = e[0] |
127 f = e[0] |
|
128 if getattr(f, '_deprecatedregistrar', False): |
|
129 ui.deprecwarn("cmdutil.command is deprecated, use " |
|
130 "registrar.command to register '%s'" % c, '4.6') |
128 missing = [a for a in _cmdfuncattrs if not util.safehasattr(f, a)] |
131 missing = [a for a in _cmdfuncattrs if not util.safehasattr(f, a)] |
129 if not missing: |
132 if not missing: |
130 continue |
133 continue |
131 raise error.ProgrammingError( |
134 raise error.ProgrammingError( |
132 'missing attributes: %s' % ', '.join(missing), |
135 'missing attributes: %s' % ', '.join(missing), |
151 minver = getattr(mod, 'minimumhgversion', None) |
154 minver = getattr(mod, 'minimumhgversion', None) |
152 if minver and util.versiontuple(minver, 2) > util.versiontuple(n=2): |
155 if minver and util.versiontuple(minver, 2) > util.versiontuple(n=2): |
153 ui.warn(_('(third party extension %s requires version %s or newer ' |
156 ui.warn(_('(third party extension %s requires version %s or newer ' |
154 'of Mercurial; disabling)\n') % (shortname, minver)) |
157 'of Mercurial; disabling)\n') % (shortname, minver)) |
155 return |
158 return |
156 _validatecmdtable(getattr(mod, 'cmdtable', {})) |
159 _validatecmdtable(ui, getattr(mod, 'cmdtable', {})) |
157 |
160 |
158 _extensions[shortname] = mod |
161 _extensions[shortname] = mod |
159 _order.append(shortname) |
162 _order.append(shortname) |
160 for fn in _aftercallbacks.get(shortname, []): |
163 for fn in _aftercallbacks.get(shortname, []): |
161 fn(loaded=True) |
164 fn(loaded=True) |