Version 11 (modified by HumanInternals, 13 years ago) (diff)


WikiFormatting for revision links on Trac with multiple repositories


When multiple repositories are configured, the 'r123' syntax doesn't enable you to specify the repository and the [changeset:123:repo] or [123/repo] syntax must be used instead. As I do find the 'r123' syntax more readable, I wrote this small plugin that lets you use 'r123repo' (simply add the repository name right after the changeset number), which is displayed as 'repo/r123' with a link to the changeset. Parsing 'repo/r123' syntax isn't possible (AFAIK) as the built-in parser parses the 'r123' part, so the syntax is 'r123repo' but it displays as 'repo/r123'.

Bugs/Feature Requests

I'm usually at #trac as shsek or shesek. My email is nadav at humaninternals /nospam/ com. You can also leave bug reports as a comment here, as I probably won't follow bug reports on the Trac here.

Existing bugs and feature requests for RepoRevisionSyntaxPlugin are here.

If you have any issues, create a new ticket.


Simply drop the source code as a .py file directly in your plugins directory


from trac.core import *
from import IWikiSyntaxProvider
from genshi.builder import tag

class RepoRevisionSyntax(Component):
    def get_wiki_syntax(self):
        yield ( r'[r#](?P<rev_id>\d+)(?P<repo>[a-zA-Z0-9_\/]+)', self._format_regex_link)
    def get_link_resolvers(self):
    def _format_regex_link(self, formatter, ns, match):
        return tag.a('%s/r%s' % ('repo'),'rev_id')),


'Fixed by r78trac' (as a ticket comment, for example) would !get displayed as 'Fixed by trac/r78', 'trac/r78' being a link to the changeset.

Recent Changes

8337 by shesek on 2010-08-05 18:54:27
New hack RepoRevisionSyntaxPlugin, created by shesek


Author: shesek / Nadav
Maintainer: shesek
Contributors: Jonathan