# # # patch "tracvc/mtn/__init__.py" # from [befcb26995a601b2c0fed16f9f37e27538866500] # to [fe6f41e62401ab392e46b6ba3f42acfedd3ace56] # # patch "tracvc/mtn/backend.py" # from [13d143ad877b77218cec242a0cb1e2b3ad9fd0a5] # to [6dbb8a0036a5b7a5b4693d3b02752a5abffa55bd] # ============================================================ --- tracvc/mtn/__init__.py befcb26995a601b2c0fed16f9f37e27538866500 +++ tracvc/mtn/__init__.py fe6f41e62401ab392e46b6ba3f42acfedd3ace56 @@ -1,5 +1,5 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -__version__ = '0.0.8' +__version__ = '0.0.9' ============================================================ --- tracvc/mtn/backend.py 13d143ad877b77218cec242a0cb1e2b3ad9fd0a5 +++ tracvc/mtn/backend.py 6dbb8a0036a5b7a5b4693d3b02752a5abffa55bd @@ -178,6 +178,33 @@ class MonotoneConnector(Component): % (str(e), formatter.href.changeset(rev), label) +if IPropertyRenderer: + from genshi.builder import tag + + class CsetPropertyRenderer(Component): + implements(IPropertyRenderer) + + def match_property(self, name, mode): + if mode == 'revprop' and name in ('Parents', 'Children', + 'Branches', 'Tags'): + return 4 + return 0 + + def render_property(self, name, mode, context, props): + fragments = [] + repos = context.env.get_repository() + for val in props[name]: + if name in ('Branches', 'Tags'): + # don't create links here + fragments.append(tag(val)) + else: + changeset = repos.get_changeset(val) + fragments.append(tag.a(val, class_="changeset", + title=shorten_line(changeset.message), + href=context.href.changeset(val))) + return tag([tag(f, ', ') for f in fragments[:-1]], fragments[-1]) + + # Datetime handling changed somewhere between 0.10 and 0.11. We try to # support both variants for a while. if utc: @@ -623,10 +650,16 @@ class MonotoneChangeset(Changeset): if IPropertyRenderer: def get_properties(self): properties = {} - properties['Parent'] = ', '.join(self.mtn.parents(self.rev)) - properties['Child'] = ', '.join(self.mtn.children(self.rev)) - properties['Branch'] = ', '.join(self.branches) - properties['Tag'] = ', '.join(self.tags) + parents = self.mtn.parents(self.rev) + if parents: + properties['Parents'] = parents + children = self.mtn.children(self.rev) + if children: + properties['Children'] = children + if self.branches: + properties['Branches'] = self.branches + if self.tags: + properties['Tags'] = self.tags # FIXME: add user-defined revision properties return properties