~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Aaron Bentley
  • Date: 2005-10-13 15:21:50 UTC
  • mto: (1185.25.1)
  • mto: This revision was merged to the branch mainline in revision 1460.
  • Revision ID: abentley@panoramicfeedback.com-20051013152150-454a9cc25007f24d
Added one-line log format

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
from bzrlib.tree import EmptyTree
55
55
from bzrlib.delta import compare_trees
56
56
from bzrlib.trace import mutter
 
57
import re
57
58
 
58
59
 
59
60
def find_touching_revisions(branch, file_id):
408
409
        from bzrlib.osutils import format_date
409
410
 
410
411
        to_file = self.to_file
411
 
 
 
412
        date_str = format_date(rev.timestamp, rev.timezone or 0,
 
413
                            self.show_timezone)
412
414
        print >>to_file, "%5d %s\t%s" % (revno, rev.committer,
413
415
                format_date(rev.timestamp, rev.timezone or 0,
414
416
                            self.show_timezone))
426
428
            delta.show(to_file, self.show_ids)
427
429
        print
428
430
 
429
 
 
 
431
class LineLogFormatter(LogFormatter):
 
432
    def truncate(self, str, max_len):
 
433
        if len(str) <= max_len:
 
434
            return str
 
435
        return str[:max_len-3]+'...'
 
436
 
 
437
    def date_string(self, rev):
 
438
        from bzrlib.osutils import format_date
 
439
        return format_date(rev.timestamp, rev.timezone or 0, 
 
440
                           self.show_timezone, date_fmt="%Y-%m-%d",
 
441
                           show_offset=False)
 
442
 
 
443
    def message(self, rev):
 
444
        if not rev.message:
 
445
            return '(no message)'
 
446
        else:
 
447
            return rev.message
 
448
 
 
449
    def short_committer(self, rev):
 
450
        return re.sub('<.*@.*>', '', rev.committer).strip(' ')
 
451
    
 
452
    def show(self, revno, rev, delta):
 
453
        print >> self.to_file, self.log_string(rev, 79) 
 
454
 
 
455
    def log_string(self, rev, max_chars):
 
456
        out = [self.truncate(self.short_committer(rev), 20)]
 
457
        out.append(self.date_string(rev))
 
458
        out.append(self.message(rev).replace('\n', ' '))
 
459
        return self.truncate(" ".join(out).rstrip('\n'), max_chars)
430
460
 
431
461
FORMATTERS = {'long': LongLogFormatter,
432
462
              'short': ShortLogFormatter,
 
463
              'line': LineLogFormatter,
433
464
              }
434
465
 
435
466