1370
def show_foreign_info(self, rev, indent):
1371
"""Custom log displayer for foreign revision identifiers.
1373
:param rev: Revision object.
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(
1381
# Imported foreign revision revision ids always contain :
1382
if not ":" in rev.revision_id:
1385
# Revision was once imported from a foreign repository
1387
foreign_revid, mapping = \
1388
foreign.foreign_vcs_registry.parse_revision_id(rev.revision_id)
1389
except errors.InvalidRevisionId:
1392
self._write_properties(indent,
1393
mapping.vcs.show_foreign_revid(foreign_revid))
1395
1369
def show_properties(self, revision, indent):
1396
1370
"""Displays the custom properties returned by each registered handler.
1398
1372
If a registered handler raises an error it is propagated.
1400
1374
for key, handler in properties_handler_registry.iteritems():
1401
self._write_properties(indent, handler(revision))
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')
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)
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'
1934
1903
properties_handler_registry = registry.Registry()
1904
properties_handler_registry.register_lazy("foreign",
1906
"show_foreign_properties")
1937
1909
# adapters which revision ids to log are filtered. When log is called, the