~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

Merge in format-5 work - release bzr 0.1rc1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
109
109
    return rh
110
110
 
111
111
 
 
112
def _get_revision_delta(branch, revno):
 
113
    """Return the delta for a mainline revision.
 
114
    
 
115
    This is used to show summaries in verbose logs, and also for finding 
 
116
    revisions which touch a given file."""
 
117
    # FIXME: The current version is very inefficient; it retrieves all revisions
 
118
    # twice and reads the weave twice.  We ought to keep revisions in memory 
 
119
    # in case they're used again, either in a general cache or perhaps 
 
120
    # in this code.
 
121
    # XXX: What are we supposed to do when showing a summary for something 
 
122
    # other than a mainline revision.  The delta to it's first parent, or
 
123
    # (more useful) the delta to a nominated other revision.
 
124
    return branch.get_revision_delta(revno)
 
125
 
 
126
 
112
127
def show_log(branch,
113
128
             lf,
114
129
             specific_fileid=None,
181
196
 
182
197
    for revno, rev_id in cut_revs:
183
198
        if verbose or specific_fileid:
184
 
            delta = branch.get_revision_delta(revno)
 
199
            delta = _get_revision_delta(branch, revno)
185
200
            
186
201
        if specific_fileid:
187
202
            if not delta.touches_file_id(specific_fileid):
293
308
 
294
309
    def show(self, revno, rev, delta):
295
310
        raise NotImplementedError('not implemented in abstract base')
296
 
        
297
 
 
298
 
 
299
 
 
300
 
 
301
 
 
 
311
 
 
312
    
302
313
class LongLogFormatter(LogFormatter):
303
314
    def show(self, revno, rev, delta):
304
315
        from osutils import format_date
310
321
        if self.show_ids:
311
322
            print >>to_file,  'revision-id:', rev.revision_id
312
323
 
313
 
            for parent in rev.parents:
314
 
                print >>to_file, 'parent:', parent.revision_id
 
324
            for parent_id in rev.parent_ids:
 
325
                print >>to_file, 'parent:', parent_id
315
326
            
316
327
        print >>to_file,  'committer:', rev.committer
317
328
 
363
374
 
364
375
 
365
376
def log_formatter(name, *args, **kwargs):
 
377
    """Construct a formatter from arguments.
 
378
 
 
379
    name -- Name of the formatter to construct; currently 'long' and
 
380
        'short' are supported.
 
381
    """
366
382
    from bzrlib.errors import BzrCommandError
367
 
    
368
383
    try:
369
384
        return FORMATTERS[name](*args, **kwargs)
370
385
    except IndexError: