/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-30 23:29:34 UTC
  • mfrom: (4216.1.1 ianc-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20090330232934-wy5ynne0u2qlb0bu
Remove single_merge_revision stuff from log (Ian Clatworthy)

Show diffs side-by-side

added added

removed removed

Lines of Context:
279
279
        'diff_type': diff_type,
280
280
        # Add 'private' attributes for features that may be deprecated
281
281
        '_match_using_deltas': _match_using_deltas,
282
 
        '_allow_single_merge_revision': True,
283
282
    }
284
283
 
285
284
 
348
347
            rqst['delta_type'] = None
349
348
        if not getattr(lf, 'supports_diff', False):
350
349
            rqst['diff_type'] = None
351
 
        if not getattr(lf, 'supports_merge_revisions', False):
352
 
            rqst['_allow_single_merge_revision'] = getattr(lf,
353
 
                'supports_single_merge_revision', False)
354
350
 
355
351
        # Find and print the interesting revisions
356
352
        generator = self._generator_factory(self.branch, rqst)
454
450
                rqst.get('limit') or self.start_rev_id or self.end_rev_id)
455
451
        view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
456
452
            self.end_rev_id, rqst.get('direction'), generate_merge_revisions,
457
 
            rqst.get('_allow_single_merge_revision'),
458
453
            delayed_graph_generation=delayed_graph_generation)
459
454
 
460
455
        # Apply the other filters
469
464
        # filter_revisions_touching_file_id() requires them ...
470
465
        rqst = self.rqst
471
466
        view_revisions = _calc_view_revisions(self.branch, self.start_rev_id,
472
 
            self.end_rev_id, rqst.get('direction'), True,
473
 
            rqst.get('_allow_single_merge_revision'))
 
467
            self.end_rev_id, rqst.get('direction'), True)
474
468
        if not isinstance(view_revisions, list):
475
469
            view_revisions = list(view_revisions)
476
470
        view_revisions = _filter_revisions_touching_file_id(self.branch,
481
475
 
482
476
 
483
477
def _calc_view_revisions(branch, start_rev_id, end_rev_id, direction,
484
 
    generate_merge_revisions, allow_single_merge_revision,
485
 
    delayed_graph_generation=False):
 
478
    generate_merge_revisions, delayed_graph_generation=False):
486
479
    """Calculate the revisions to view.
487
480
 
488
481
    :return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
496
489
    generate_single_revision = (end_rev_id and start_rev_id == end_rev_id and
497
490
        (not generate_merge_revisions or not _has_merges(branch, end_rev_id)))
498
491
    if generate_single_revision:
499
 
        return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno,
500
 
            allow_single_merge_revision)
 
492
        return _generate_one_revision(branch, end_rev_id, br_rev_id, br_revno)
501
493
 
502
494
    # If we only want to see linear revisions, we can iterate ...
503
495
    if not generate_merge_revisions:
508
500
            direction, delayed_graph_generation)
509
501
 
510
502
 
511
 
def _generate_one_revision(branch, rev_id, br_rev_id, br_revno,
512
 
    allow_single_merge_revision):
 
503
def _generate_one_revision(branch, rev_id, br_rev_id, br_revno):
513
504
    if rev_id == br_rev_id:
514
505
        # It's the tip
515
506
        return [(br_rev_id, br_revno, 0)]
516
507
    else:
517
508
        revno = branch.revision_id_to_dotted_revno(rev_id)
518
 
        if len(revno) > 1 and not allow_single_merge_revision:
519
 
            # It's a merge revision and the log formatter is
520
 
            # completely brain dead. This "feature" of allowing
521
 
            # log formatters incapable of displaying dotted revnos
522
 
            # ought to be deprecated IMNSHO. IGC 20091022
523
 
            raise errors.BzrCommandError('Selected log formatter only'
524
 
                ' supports mainline revisions.')
525
509
        revno_str = '.'.join(str(n) for n in revno)
526
510
        return [(rev_id, revno_str, 0)]
527
511
 
683
667
 
684
668
 
685
669
def calculate_view_revisions(branch, start_revision, end_revision, direction,
686
 
        specific_fileid, generate_merge_revisions, allow_single_merge_revision):
 
670
        specific_fileid, generate_merge_revisions):
687
671
    """Calculate the revisions to view.
688
672
 
689
673
    :return: An iterator of (revision_id, dotted_revno, merge_depth) tuples OR
695
679
    start_rev_id, end_rev_id = _get_revision_limits(branch, start_revision,
696
680
        end_revision)
697
681
    view_revisions = list(_calc_view_revisions(branch, start_rev_id, end_rev_id,
698
 
        direction, generate_merge_revisions or specific_fileid,
699
 
        allow_single_merge_revision))
 
682
        direction, generate_merge_revisions or specific_fileid))
700
683
    if specific_fileid:
701
684
        view_revisions = _filter_revisions_touching_file_id(branch,
702
685
            specific_fileid, view_revisions,
1284
1267
        one (2) should be used.
1285
1268
 
1286
1269
    - supports_merge_revisions must be True if this log formatter supports
1287
 
        merge revisions.  If not, and if supports_single_merge_revision is
1288
 
        also not True, then only mainline revisions will be passed to the
1289
 
        formatter.
 
1270
        merge revisions.  If not, then only mainline revisions will be passed
 
1271
        to the formatter.
1290
1272
 
1291
1273
    - preferred_levels is the number of levels this formatter defaults to.
1292
1274
        The default value is zero meaning display all levels.
1293
1275
        This value is only relevant if supports_merge_revisions is True.
1294
1276
 
1295
 
    - supports_single_merge_revision must be True if this log formatter
1296
 
        supports logging only a single merge revision.  This flag is
1297
 
        only relevant if supports_merge_revisions is not True.
1298
 
 
1299
1277
    - supports_tags must be True if this log formatter supports tags.
1300
1278
        Otherwise the tags attribute may not be populated.
1301
1279