~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Patch Queue Manager
  • Date: 2011-10-06 10:15:06 UTC
  • mfrom: (6195.1.1 trunk)
  • Revision ID: pqm@pqm.ubuntu.com-20111006101506-mychax14dy7yjee2
(vila) Tag bzr-2.5b2 missed during freeze (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
    revision as _mod_revision,
75
75
    revisionspec,
76
76
    tsort,
77
 
    i18n,
78
77
    )
 
78
from bzrlib.i18n import gettext, ngettext
79
79
""")
80
80
 
81
81
from bzrlib import (
215
215
    Logger(branch, rqst).show(lf)
216
216
 
217
217
 
218
 
# Note: This needs to be kept this in sync with the defaults in
 
218
# Note: This needs to be kept in sync with the defaults in
219
219
# make_log_request_dict() below
220
220
_DEFAULT_REQUEST_PARAMS = {
221
221
    'direction': 'reverse',
232
232
                          delta_type=None,
233
233
                          diff_type=None, _match_using_deltas=True,
234
234
                          exclude_common_ancestry=False, match=None,
235
 
                          signature=False,
 
235
                          signature=False, omit_merges=False,
236
236
                          ):
237
237
    """Convenience function for making a logging request dictionary.
238
238
 
288
288
      revisions. Keys can be 'message', 'author', 'committer', 'bugs' or
289
289
      the empty string to match any of the preceding properties.
290
290
 
 
291
    :param omit_merges: If True, commits with more than one parent are
 
292
      omitted.
 
293
 
291
294
    """
292
295
    # Take care of old style message_search parameter
293
296
    if message_search:
311
314
        'exclude_common_ancestry': exclude_common_ancestry,
312
315
        'signature': signature,
313
316
        'match': match,
 
317
        'omit_merges': omit_merges,
314
318
        # Add 'private' attributes for features that may be deprecated
315
319
        '_match_using_deltas': _match_using_deltas,
316
320
    }
447
451
        limit = rqst.get('limit')
448
452
        diff_type = rqst.get('diff_type')
449
453
        show_signature = rqst.get('signature')
 
454
        omit_merges = rqst.get('omit_merges')
450
455
        log_count = 0
451
456
        revision_iterator = self._create_log_revision_iterator()
452
457
        for revs in revision_iterator:
454
459
                # 0 levels means show everything; merge_depth counts from 0
455
460
                if levels != 0 and merge_depth >= levels:
456
461
                    continue
 
462
                if omit_merges and len(rev.parent_ids) > 1:
 
463
                    continue
457
464
                if diff_type is None:
458
465
                    diff = None
459
466
                else:
558
565
             a list of the same tuples.
559
566
    """
560
567
    if (exclude_common_ancestry and start_rev_id == end_rev_id):
561
 
        raise errors.BzrCommandError(
562
 
            '--exclude-common-ancestry requires two different revisions')
 
568
        raise errors.BzrCommandError(gettext(
 
569
            '--exclude-common-ancestry requires two different revisions'))
563
570
    if direction not in ('reverse', 'forward'):
564
 
        raise ValueError('invalid direction %r' % direction)
 
571
        raise ValueError(gettext('invalid direction %r') % direction)
565
572
    br_revno, br_rev_id = branch.last_revision_info()
566
573
    if br_revno == 0:
567
574
        return []
608
615
        try:
609
616
            result = list(result)
610
617
        except _StartNotLinearAncestor:
611
 
            raise errors.BzrCommandError('Start revision not found in'
612
 
                ' left-hand history of end revision.')
 
618
            raise errors.BzrCommandError(gettext('Start revision not found in'
 
619
                ' left-hand history of end revision.'))
613
620
    return result
614
621
 
615
622
 
654
661
        except _StartNotLinearAncestor:
655
662
            # A merge was never detected so the lower revision limit can't
656
663
            # be nested down somewhere
657
 
            raise errors.BzrCommandError('Start revision not found in'
658
 
                ' history of end revision.')
 
664
            raise errors.BzrCommandError(gettext('Start revision not found in'
 
665
                ' history of end revision.'))
659
666
 
660
667
    # We exit the loop above because we encounter a revision with merges, from
661
668
    # this revision, we need to switch to _graph_view_revisions.
1072
1079
    if branch_revno != 0:
1073
1080
        if (start_rev_id == _mod_revision.NULL_REVISION
1074
1081
            or end_rev_id == _mod_revision.NULL_REVISION):
1075
 
            raise errors.BzrCommandError('Logging revision 0 is invalid.')
 
1082
            raise errors.BzrCommandError(gettext('Logging revision 0 is invalid.'))
1076
1083
        if start_revno > end_revno:
1077
 
            raise errors.BzrCommandError("Start revision must be older than "
1078
 
                                         "the end revision.")
 
1084
            raise errors.BzrCommandError(gettext("Start revision must be "
 
1085
                                         "older than the end revision."))
1079
1086
    return (start_rev_id, end_rev_id)
1080
1087
 
1081
1088
 
1130
1137
 
1131
1138
    if ((start_rev_id == _mod_revision.NULL_REVISION)
1132
1139
        or (end_rev_id == _mod_revision.NULL_REVISION)):
1133
 
        raise errors.BzrCommandError('Logging revision 0 is invalid.')
 
1140
        raise errors.BzrCommandError(gettext('Logging revision 0 is invalid.'))
1134
1141
    if start_revno > end_revno:
1135
 
        raise errors.BzrCommandError("Start revision must be older than "
1136
 
                                     "the end revision.")
 
1142
        raise errors.BzrCommandError(gettext("Start revision must be older "
 
1143
                                     "than the end revision."))
1137
1144
 
1138
1145
    if end_revno < start_revno:
1139
1146
        return None, None, None, None
1405
1412
            if advice_sep:
1406
1413
                self.to_file.write(advice_sep)
1407
1414
            self.to_file.write(
1408
 
                "Use --include-merges or -n0 to see merged revisions.\n")
 
1415
                "Use --include-merged or -n0 to see merged revisions.\n")
1409
1416
 
1410
1417
    def get_advice_separator(self):
1411
1418
        """Get the text separating the log from the closing advice."""
1818
1825
    try:
1819
1826
        return log_formatter_registry.make_formatter(name, *args, **kwargs)
1820
1827
    except KeyError:
1821
 
        raise errors.BzrCommandError("unknown log formatter: %r" % name)
 
1828
        raise errors.BzrCommandError(gettext("unknown log formatter: %r") % name)
1822
1829
 
1823
1830
 
1824
1831
def author_list_all(rev):
2113
2120
                          len(row) > 1 and row[1] == 'fixed']
2114
2121
 
2115
2122
        if fixed_bug_urls:
2116
 
            return {'fixes bug(s)': ' '.join(fixed_bug_urls)}
 
2123
            return {ngettext('fixes bug', 'fixes bugs', len(fixed_bug_urls)):\
 
2124
                    ' '.join(fixed_bug_urls)}
2117
2125
    return {}
2118
2126
 
2119
2127
properties_handler_registry.register('bugs_properties_handler',