~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Mattias Eriksson
  • Date: 2009-06-01 12:00:20 UTC
  • mto: This revision was merged to the branch mainline in revision 4398.
  • Revision ID: snaggen@acc.umu.se-20090601120020-9wr9pnqghiifwk2s
Clear the progress bar for cmd_ls before writing the output.

Show diffs side-by-side

added added

removed removed

Lines of Context:
69
69
    config,
70
70
    diff,
71
71
    errors,
72
 
    foreign,
73
72
    repository as _mod_repository,
74
73
    revision as _mod_revision,
75
74
    revisionspec,
1367
1366
        else:
1368
1367
            return ''
1369
1368
 
1370
 
    def show_foreign_info(self, rev, indent):
1371
 
        """Custom log displayer for foreign revision identifiers.
1372
 
 
1373
 
        :param rev: Revision object.
1374
 
        """
1375
 
        # Revision comes directly from a foreign repository
1376
 
        if isinstance(rev, foreign.ForeignRevision):
1377
 
            self._write_properties(indent, rev.mapping.vcs.show_foreign_revid(
1378
 
                rev.foreign_revid))
1379
 
            return
1380
 
 
1381
 
        # Imported foreign revision revision ids always contain :
1382
 
        if not ":" in rev.revision_id:
1383
 
            return
1384
 
 
1385
 
        # Revision was once imported from a foreign repository
1386
 
        try:
1387
 
            foreign_revid, mapping = \
1388
 
                foreign.foreign_vcs_registry.parse_revision_id(rev.revision_id)
1389
 
        except errors.InvalidRevisionId:
1390
 
            return
1391
 
 
1392
 
        self._write_properties(indent, 
1393
 
            mapping.vcs.show_foreign_revid(foreign_revid))
1394
 
 
1395
1369
    def show_properties(self, revision, indent):
1396
1370
        """Displays the custom properties returned by each registered handler.
1397
1371
 
1398
1372
        If a registered handler raises an error it is propagated.
1399
1373
        """
1400
1374
        for key, handler in properties_handler_registry.iteritems():
1401
 
            self._write_properties(indent, handler(revision))
1402
 
 
1403
 
    def _write_properties(self, indent, properties):
1404
 
        for key, value in properties.items():
1405
 
            self.to_file.write(indent + key + ': ' + value + '\n')
 
1375
            for key, value in handler(revision).items():
 
1376
                self.to_file.write(indent + key + ': ' + value + '\n')
1406
1377
 
1407
1378
    def show_diff(self, to_file, diff, indent):
1408
1379
        for l in diff.rstrip().split('\n'):
1432
1403
            to_file.write('\n')
1433
1404
            for parent_id in revision.rev.parent_ids:
1434
1405
                to_file.write(indent + 'parent: %s\n' % (parent_id,))
1435
 
        self.show_foreign_info(revision.rev, indent)
1436
1406
        self.show_properties(revision.rev, indent)
1437
1407
 
1438
1408
        committer = revision.rev.committer
1515
1485
                            self.show_timezone, date_fmt="%Y-%m-%d",
1516
1486
                            show_offset=False),
1517
1487
                tags, self.merge_marker(revision)))
1518
 
        self.show_foreign_info(revision.rev, indent+offset)
1519
1488
        self.show_properties(revision.rev, indent+offset)
1520
1489
        if self.show_ids:
1521
1490
            to_file.write(indent + offset + 'revision-id:%s\n'
1932
1901
 
1933
1902
 
1934
1903
properties_handler_registry = registry.Registry()
 
1904
properties_handler_registry.register_lazy("foreign",
 
1905
                                          "bzrlib.foreign",
 
1906
                                          "show_foreign_properties")
1935
1907
 
1936
1908
 
1937
1909
# adapters which revision ids to log are filtered. When log is called, the