diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
--- a/trac/versioncontrol/api.py
+++ b/trac/versioncontrol/api.py
@@ -27,7 +27,7 @@
 from trac.config import ListOption, Option
 from trac.core import *
 from trac.perm import PermissionError
-from trac.resource import IResourceManager, ResourceSystem, ResourceNotFound
+from trac.resource import *
 from trac.util.text import printout, to_unicode
 from trac.util.translation import _
 from trac.web.api import IRequestFilter
@@ -682,6 +682,10 @@
         self.log = log
         self.reponame = name # overriden by the reponame key used to create it
 
+    @property
+    def resource(self):
+        return Resource('repository', self.reponame)
+
     def close(self):
         """Close the connection to the repository."""
         raise NotImplementedError
diff --git a/trac/versioncontrol/templates/repository_index.html b/trac/versioncontrol/templates/repository_index.html
--- a/trac/versioncontrol/templates/repository_index.html
+++ b/trac/versioncontrol/templates/repository_index.html
@@ -5,21 +5,21 @@
   <table class="listing dirlist" id="${repoindex or None}">
     <xi:include href="dirlist_thead.html" />
     <tbody>
-      <py:for each="idx, (reponame, repoinfo, change, err) in enumerate(repo.repositories)">
+      <py:for each="idx, (repos_resource, repoinfo, change, err) in enumerate(repo.repositories)">
         <tr class="${idx % 2 and 'even' or 'odd'}">
           <td class="name">
             <em py:strip="not err">
               <b py:strip="repoinfo.alias != ''">
                 <a class="dir" title="View Root Directory"
-                  href="${href.browser(reponame, order=(order != 'name' and order or None), desc=desc)}">$reponame</a>
+                   href="${href.browser(repos_resource.id, order=(order != 'name' and order or None), desc=desc)}">${repos_resource.id}</a>
               </b>
             </em>
           </td>
           <td class="size" />
           <td class="rev">
             <py:if test="not err">
-              <a title="View Revision Log" href="${href.log(reponame)}">$change.rev</a>
-              <a title="View Changeset" class="chgset" href="${href.changeset(change.rev, reponame)}">&nbsp;</a>
+              <a title="View Revision Log" href="${href.log(repos_resource.id)}">$change.rev</a>
+              <a title="View Changeset" class="chgset" href="${href.changeset(change.rev, repos_resource.id)}">&nbsp;</a>
             </py:if>
           </td>
           <td class="age" style="${change and repo.timerange and 'border-color: rgb(%s,%s,%s)' %
diff --git a/trac/versioncontrol/web_ui/browser.py b/trac/versioncontrol/web_ui/browser.py
--- a/trac/versioncontrol/web_ui/browser.py
+++ b/trac/versioncontrol/web_ui/browser.py
@@ -469,20 +469,21 @@
                             timerange = TimeRange(youngest.date)
                         else:
                             timerange.insert(youngest.date)
-                    entry = (reponame, repoinfo, youngest, None)
+                    entry = (repos.resource, repoinfo, youngest, None)
                 else:
-                    entry = (reponame, repoinfo, None, "XXX")
+                    entry = (repos.resource, repoinfo, None, "XXX")
             except TracError, err:
-                entry = (reponame, repoinfo, None, exception_to_unicode(err))
+                entry = (Resource('repository', reponame), repoinfo, 
+                         None, exception_to_unicode(err))
             repositories.append(entry)
 
         # Ordering of repositories
         if order == 'date':
-            def repo_order((reponame, repoinfo, repos, youngest)):
+            def repo_order((repos_resource, repoinfo, repos, youngest)):
                 return youngest and youngest.date
         else:
-            def repo_order((reponame, repoinfo, repos, youngest)):
-                return embedded_numbers(reponame.lower())
+            def repo_order((repos_resource, repoinfo, repos, youngest)):
+                return embedded_numbers(repos_resource.id.lower())
 
         repositories = sorted(repositories, key=repo_order, reverse=desc)
 

