308 if diff: |
308 if diff: |
309 self._differ.showdiff(self.ui, ctx, diffopts, stat=False) |
309 self._differ.showdiff(self.ui, ctx, diffopts, stat=False) |
310 if stat or diff: |
310 if stat or diff: |
311 self.ui.write("\n") |
311 self.ui.write("\n") |
312 |
312 |
313 class jsonchangeset(changesetprinter): |
313 class changesetformatter(changesetprinter): |
314 '''format changeset information.''' |
314 """Format changeset information by generic formatter""" |
315 |
315 |
316 def __init__(self, ui, repo, differ=None, diffopts=None, buffered=False): |
316 def __init__(self, ui, repo, fm, differ=None, diffopts=None, |
|
317 buffered=False): |
317 changesetprinter.__init__(self, ui, repo, differ, diffopts, buffered) |
318 changesetprinter.__init__(self, ui, repo, differ, diffopts, buffered) |
318 self._fm = formatter.jsonformatter(ui, ui, 'log', {}) |
319 self._fm = fm |
319 |
320 |
320 def close(self): |
321 def close(self): |
321 self._fm.end() |
322 self._fm.end() |
322 |
323 |
323 def _show(self, ctx, copies, props): |
324 def _show(self, ctx, copies, props): |
517 If all of these values are either the unset or the empty string, |
518 If all of these values are either the unset or the empty string, |
518 regular display via changesetprinter() is done. |
519 regular display via changesetprinter() is done. |
519 """ |
520 """ |
520 postargs = (differ, opts, buffered) |
521 postargs = (differ, opts, buffered) |
521 if opts.get('template') == 'json': |
522 if opts.get('template') == 'json': |
522 return jsonchangeset(ui, repo, *postargs) |
523 fm = ui.formatter('log', opts) |
|
524 return changesetformatter(ui, repo, fm, *postargs) |
523 |
525 |
524 spec = _lookuptemplate(ui, opts.get('template'), opts.get('style')) |
526 spec = _lookuptemplate(ui, opts.get('template'), opts.get('style')) |
525 |
527 |
526 if not spec.ref and not spec.tmpl and not spec.mapfile: |
528 if not spec.ref and not spec.tmpl and not spec.mapfile: |
527 return changesetprinter(ui, repo, *postargs) |
529 return changesetprinter(ui, repo, *postargs) |