Index: trac/WikiFormatter.py
===================================================================
--- trac/WikiFormatter.py	(revision 1111)
+++ trac/WikiFormatter.py	(working copy)
@@ -42,7 +42,7 @@
               r"""(?P<inlinecode>!?\{\{\{(?P<inline>.*?)\}\}\})""",
               r"""(?P<htmlescapeentity>!?&#\d+;)""",
               r"""(?P<tickethref>!?#\d+)""",
-              r"""(?P<changesethref>!?\[\d+\])""",
+              r"""(?P<changesethref>!?(\[\d+\]|\b[rR]\d+\b))""",
               r"""(?P<reporthref>!?\{\d+\})""",
               r"""(?P<modulehref>!?((?P<modulename>bug|ticket|browser|source|repos|report|changeset|wiki|milestone|search):(?P<moduleargs>(&#34;(.*?)&#34;|'(.*?)')|([^ ]*[^'~_\., \)]))))""",
               r"""(?P<wikilink>!?(^|(?<=[^A-Za-z]))[A-Z][a-z]+(?:[A-Z][a-z]*[a-z/])+(?=\Z|\s|[.,;:!?\)}\]]))""",
@@ -128,7 +128,10 @@
                 return '<a href="%s" title="%s">#%d</a>' % (self._href.ticket(number), summary, number)
 
     def _changesethref_formatter(self, match, fullmatch):
-        number = int(match[1:-1])
+        if match[0] in ('r', 'R'):
+            number = int(match[1:])
+        else:
+            number = int(match[1:-1])
         cursor = self.db.cursor ()
         cursor.execute('SELECT message FROM revision WHERE rev=%d', number)
         row = cursor.fetchone ()

