~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Aaron Bentley
  • Date: 2007-02-06 14:52:16 UTC
  • mfrom: (2266 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2268.
  • Revision ID: abentley@panoramicfeedback.com-20070206145216-fcpi8o3ufvuzwbp9
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
from itertools import izip
55
55
import re
56
56
 
 
57
from bzrlib import symbol_versioning
57
58
import bzrlib.errors as errors
 
59
from bzrlib.symbol_versioning import deprecated_method, zero_eleven
58
60
from bzrlib.trace import mutter
59
61
from bzrlib.tsort import merge_sort
60
62
 
202
204
        mainline_revs.insert(0, None)
203
205
    else:
204
206
        mainline_revs.insert(0, which_revs[start_revision-2][1])
205
 
    if getattr(lf, 'show_merge', None) is not None:
206
 
        include_merges = True 
 
207
    # how should we show merged revisions ?
 
208
    # old api: show_merge. New api: show_merge_revno
 
209
    show_merge_revno = getattr(lf, 'show_merge_revno', None)
 
210
    show_merge = getattr(lf, 'show_merge', None)
 
211
    if show_merge is None and show_merge_revno is None:
 
212
        # no merged-revno support
 
213
        include_merges = False
207
214
    else:
208
 
        include_merges = False 
 
215
        include_merges = True
 
216
    if show_merge is not None and show_merge_revno is None:
 
217
        # tell developers to update their code
 
218
        symbol_versioning.warn('LogFormatters should provide show_merge_revno '
 
219
            'instead of show_merge since bzr 0.11.',
 
220
            DeprecationWarning, stacklevel=3)
209
221
    view_revisions = list(get_view_revisions(mainline_revs, rev_nos, branch,
210
222
                          direction, include_merges=include_merges))
211
223
 
253
265
 
254
266
            lf.show(revno, rev, delta)
255
267
        else:
256
 
            lf.show_merge(rev, merge_depth)
 
268
            if show_merge_revno is None:
 
269
                lf.show_merge(rev, merge_depth)
 
270
            else:
 
271
                lf.show_merge_revno(rev, merge_depth, revno)
257
272
 
258
273
 
259
274
def get_view_revisions(mainline_revs, rev_nos, branch, direction,
267
282
        if direction == 'reverse':
268
283
            revision_ids.reverse()
269
284
        for revision_id in revision_ids:
270
 
            yield revision_id, rev_nos[revision_id], 0
 
285
            yield revision_id, str(rev_nos[revision_id]), 0
271
286
        return
272
287
    merge_sorted_revisions = merge_sort(
273
288
        branch.repository.get_revision_graph(mainline_revs[-1]),
274
289
        mainline_revs[-1],
275
 
        mainline_revs)
 
290
        mainline_revs,
 
291
        generate_revno=True)
276
292
 
277
293
    if direction == 'forward':
278
294
        # forward means oldest first.
280
296
    elif direction != 'reverse':
281
297
        raise ValueError('invalid direction %r' % direction)
282
298
 
283
 
    revision_history = branch.revision_history()
284
 
 
285
 
    for sequence, rev_id, merge_depth, end_of_merge in merge_sorted_revisions:
286
 
        yield rev_id, rev_nos.get(rev_id), merge_depth
 
299
    for sequence, rev_id, merge_depth, revno, end_of_merge in merge_sorted_revisions:
 
300
        yield rev_id, '.'.join(map(str, revno)), merge_depth
287
301
 
288
302
 
289
303
def reverse_by_depth(merge_sorted_revisions, _depth=0):
329
343
    def show(self, revno, rev, delta):
330
344
        return self._show_helper(revno=revno, rev=rev, delta=delta)
331
345
 
 
346
    @deprecated_method(zero_eleven)
332
347
    def show_merge(self, rev, merge_depth):
333
348
        return self._show_helper(rev=rev, indent='    '*merge_depth, merged=True, delta=None)
334
349
 
 
350
    def show_merge_revno(self, rev, merge_depth, revno):
 
351
        """Show a merged revision rev, with merge_depth and a revno."""
 
352
        return self._show_helper(rev=rev, revno=revno,
 
353
            indent='    '*merge_depth, merged=True, delta=None)
 
354
 
335
355
    def _show_helper(self, rev=None, revno=None, indent='', merged=False, delta=None):
336
356
        """Show a revision, either merged or not."""
337
357
        from bzrlib.osutils import format_date
338
358
        to_file = self.to_file
339
359
        print >>to_file,  indent+'-' * 60
340
360
        if revno is not None:
341
 
            print >>to_file,  'revno:', revno
 
361
            print >>to_file,  indent+'revno:', revno
342
362
        if merged:
343
363
            print >>to_file,  indent+'merged:', rev.revision_id
344
364
        elif self.show_ids:
375
395
        to_file = self.to_file
376
396
        date_str = format_date(rev.timestamp, rev.timezone or 0,
377
397
                            self.show_timezone)
378
 
        print >>to_file, "%5d %s\t%s" % (revno, self.short_committer(rev),
 
398
        print >>to_file, "%5s %s\t%s" % (revno, self.short_committer(rev),
379
399
                format_date(rev.timestamp, rev.timezone or 0,
380
400
                            self.show_timezone, date_fmt="%Y-%m-%d",
381
401
                           show_offset=False))
428
448
        out = []
429
449
        if revno:
430
450
            # show revno only when is not None
431
 
            out.append("%d:" % revno)
 
451
            out.append("%s:" % revno)
432
452
        out.append(self.truncate(self.short_committer(rev), 20))
433
453
        out.append(self.date_string(rev))
434
454
        out.append(rev.get_summary())