~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

Merge from integration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
"""
51
51
 
52
52
 
 
53
# TODO: option to show delta summaries for merged-in revisions
 
54
 
53
55
import bzrlib.errors as errors
54
56
from bzrlib.tree import EmptyTree
55
57
from bzrlib.delta import compare_trees
348
350
    
349
351
class LongLogFormatter(LogFormatter):
350
352
    def show(self, revno, rev, delta):
351
 
        return self._show_helper(revno=revno, rev=rev)
 
353
        return self._show_helper(revno=revno, rev=rev, delta=delta)
352
354
 
353
355
    def show_merge(self, rev):
354
 
        return self._show_helper(rev=rev, indent='    ', merged=True)
355
 
 
356
 
    def _show_helper(self, rev=None, revno=None, indent='', merged=False):
357
 
        from osutils import format_date
358
 
 
 
356
        return self._show_helper(rev=rev, indent='    ', merged=True, delta=None)
 
357
 
 
358
    def _show_helper(self, rev=None, revno=None, indent='', merged=False, delta=None):
 
359
        """Show a revision, either merged or not."""
 
360
        from bzrlib.osutils import format_date
359
361
        to_file = self.to_file
360
 
 
361
 
 
362
362
        print >>to_file,  indent+'-' * 60
363
363
        if revno is not None:
364
364
            print >>to_file,  'revno:', revno
369
369
        if self.show_ids:
370
370
            for parent_id in rev.parent_ids:
371
371
                print >>to_file, indent+'parent:', parent_id
372
 
            
373
372
        print >>to_file,  indent+'committer:', rev.committer
374
373
        try:
375
374
            print >>to_file, indent+'branch nick: %s' % \
376
375
                rev.properties['branch-nick']
377
376
        except KeyError:
378
377
            pass
379
 
 
380
378
        date_str = format_date(rev.timestamp,
381
379
                               rev.timezone or 0,
382
380
                               self.show_timezone)
386
384
        if not rev.message:
387
385
            print >>to_file,  indent+'  (no message)'
388
386
        else:
389
 
            for l in rev.message.split('\n'):
 
387
            message = rev.message.rstrip('\r\n')
 
388
            for l in message.split('\n'):
390
389
                print >>to_file,  indent+'  ' + l
 
390
        if delta != None:
 
391
            delta.show(to_file, self.show_ids)
391
392
 
392
393
 
393
394
class ShortLogFormatter(LogFormatter):
406
407
        if not rev.message:
407
408
            print >>to_file,  '      (no message)'
408
409
        else:
409
 
            for l in rev.message.split('\n'):
 
410
            message = rev.message.rstrip('\r\n')
 
411
            for l in message.split('\n'):
410
412
                print >>to_file,  '      ' + l
411
413
 
412
414
        # TODO: Why not show the modified files in a shorter form as
413
415
        # well? rewrap them single lines of appropriate length
414
416
        if delta != None:
415
417
            delta.show(to_file, self.show_ids)
416
 
        print
 
418
        print >>to_file, ''
417
419
 
418
420
class LineLogFormatter(LogFormatter):
419
421
    def truncate(self, str, max_len):