17
17
# TODO: For things like --diff-prefix, we want a way to customize the display
18
18
# of the option argument.
23
22
from bzrlib.lazy_import import lazy_import
24
23
lazy_import(globals(), """
25
26
from bzrlib import (
34
from bzrlib.trace import warning
36
37
def _parse_revision_str(revstr):
37
38
"""This handles a revision string -> revno.
180
181
self._short_name = short_name
183
raise ValueError('argname not valid for booleans')
183
assert argname is None
184
184
elif argname is None:
186
186
self.argname = argname
187
187
if param_name is None:
188
self._param_name = self.name.replace('-', '_')
188
self._param_name = self.name
190
190
self._param_name = param_name
191
191
self.custom_callback = custom_callback
210
210
option_strings.append('-%s' % short_name)
211
211
optargfn = self.type
212
212
if optargfn is None:
213
parser.add_option(action='callback',
214
callback=self._optparse_bool_callback,
213
parser.add_option(action='callback',
214
callback=self._optparse_bool_callback,
215
215
callback_args=(True,),
218
218
negation_strings = ['--%s' % self.get_negation_name()]
219
parser.add_option(action='callback',
220
callback=self._optparse_bool_callback,
219
parser.add_option(action='callback',
220
callback=self._optparse_bool_callback,
221
221
callback_args=(False,),
222
222
help=optparse.SUPPRESS_HELP, *negation_strings)
224
parser.add_option(action='callback',
225
callback=self._optparse_callback,
224
parser.add_option(action='callback',
225
callback=self._optparse_callback,
226
226
type='string', metavar=self.argname.upper(),
228
default=OptionParser.DEFAULT_VALUE,
228
default=OptionParser.DEFAULT_VALUE,
231
231
def _optparse_bool_callback(self, option, opt_str, value, parser, bool_v):
345
345
for name, switch_help in kwargs.iteritems():
346
346
name = name.replace('_', '-')
347
347
reg.register(name, name, help=switch_help)
348
if not value_switches:
349
help = help + ' "' + name + '": ' + switch_help
350
if not help.endswith("."):
352
348
return RegistryOption(name_, help, reg, title=title,
353
349
value_switches=value_switches, enum_switch=enum_switch)
478
474
"Merge using external diff3")
479
475
_merge_type_registry.register_lazy('weave', 'bzrlib.merge', 'WeaveMerger',
480
476
"Weave-based merge")
481
_merge_type_registry.register_lazy('lca', 'bzrlib.merge', 'LCAMerger',
484
478
# Declare the standard options
485
479
_standard_option('help', short_name='h',