54
54
from itertools import izip
57
from bzrlib import symbol_versioning
58
61
import bzrlib.errors as errors
59
62
from bzrlib.symbol_versioning import deprecated_method, zero_eleven
60
63
from bzrlib.trace import mutter
461
464
lf = LineLogFormatter(None)
462
465
return lf.log_string(None, rev, max_chars)
465
'long': LongLogFormatter,
466
'short': ShortLogFormatter,
467
'line': LineLogFormatter,
468
class LogFormatterRegistry(registry.Registry):
469
"""Registry for log formatters"""
471
def make_formatter(self, name, *args, **kwargs):
472
"""Construct a formatter from arguments.
474
:param name: Name of the formatter to construct. 'short', 'long' and
477
return self.get(name)(*args, **kwargs)
479
def get_default(self, branch):
480
return self.get(branch.get_config().log_format())
483
log_formatter_registry = LogFormatterRegistry()
486
log_formatter_registry.register('short', ShortLogFormatter,
487
'Moderately short log format')
488
log_formatter_registry.register('long', LongLogFormatter,
489
'Detailed log format')
490
log_formatter_registry.register('line', LineLogFormatter,
491
'Log format with one line per revision')
470
494
def register_formatter(name, formatter):
471
FORMATTERS[name] = formatter
495
log_formatter_registry.register(name, formatter)
473
498
def log_formatter(name, *args, **kwargs):
474
499
"""Construct a formatter from arguments.
479
504
from bzrlib.errors import BzrCommandError
481
return FORMATTERS[name](*args, **kwargs)
506
return log_formatter_registry.make_formatter(name, *args, **kwargs)
483
508
raise BzrCommandError("unknown log formatter: %r" % name)
485
511
def show_one_log(revno, rev, delta, verbose, to_file, show_timezone):
486
512
# deprecated; for compatibility
487
513
lf = LongLogFormatter(to_file=to_file, show_timezone=show_timezone)