~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Robert Collins
  • Date: 2005-10-08 00:32:39 UTC
  • mfrom: (1185.13.4)
  • mto: This revision was merged to the branch mainline in revision 1422.
  • Revision ID: robertc@robertcollins.net-20051008003239-b4e2f1ad62bbe3f6
merge in reweave support

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
    # XXX: What are we supposed to do when showing a summary for something 
 
118
    # other than a mainline revision.  The delta to it's first parent, or
 
119
    # (more useful) the delta to a nominated other revision.
 
120
    return branch.get_revision_delta(revno)
 
121
 
 
122
 
112
123
def show_log(branch,
113
124
             lf,
114
125
             specific_fileid=None,
139
150
    end_revision
140
151
        If not None, only show revisions <= end_revision
141
152
    """
 
153
    branch.lock_read()
 
154
    try:
 
155
        _show_log(branch, lf, specific_fileid, verbose, direction,
 
156
                  start_revision, end_revision, search)
 
157
    finally:
 
158
        branch.unlock()
 
159
    
 
160
def _show_log(branch,
 
161
             lf,
 
162
             specific_fileid=None,
 
163
             verbose=False,
 
164
             direction='reverse',
 
165
             start_revision=None,
 
166
             end_revision=None,
 
167
             search=None):
 
168
    """Worker function for show_log - see show_log."""
142
169
    from bzrlib.osutils import format_date
143
170
    from bzrlib.errors import BzrCheckError
144
171
    from bzrlib.textui import show_status
181
208
 
182
209
    for revno, rev_id in cut_revs:
183
210
        if verbose or specific_fileid:
184
 
            delta = branch.get_revision_delta(revno)
 
211
            delta = _get_revision_delta(branch, revno)
185
212
            
186
213
        if specific_fileid:
187
214
            if not delta.touches_file_id(specific_fileid):
293
320
 
294
321
    def show(self, revno, rev, delta):
295
322
        raise NotImplementedError('not implemented in abstract base')
296
 
        
297
 
 
298
 
 
299
 
 
300
 
 
301
 
 
 
323
 
 
324
    
302
325
class LongLogFormatter(LogFormatter):
303
326
    def show(self, revno, rev, delta):
304
327
        from osutils import format_date
310
333
        if self.show_ids:
311
334
            print >>to_file,  'revision-id:', rev.revision_id
312
335
 
313
 
            for parent in rev.parents:
314
 
                print >>to_file, 'parent:', parent.revision_id
 
336
            for parent_id in rev.parent_ids:
 
337
                print >>to_file, 'parent:', parent_id
315
338
            
316
339
        print >>to_file,  'committer:', rev.committer
317
340
 
363
386
 
364
387
 
365
388
def log_formatter(name, *args, **kwargs):
 
389
    """Construct a formatter from arguments.
 
390
 
 
391
    name -- Name of the formatter to construct; currently 'long' and
 
392
        'short' are supported.
 
393
    """
366
394
    from bzrlib.errors import BzrCommandError
367
 
    
368
395
    try:
369
396
        return FORMATTERS[name](*args, **kwargs)
370
397
    except IndexError: