diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
--- a/trac/versioncontrol/api.py
+++ b/trac/versioncontrol/api.py
@@ -713,6 +713,8 @@
 class Repository(object):
     """Base class for a repository provided by a version control system."""
 
+    scope = '/'
+    
     def __init__(self, name, params, log):
         """Initialize a repository.
         
diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
--- a/trac/versioncontrol/cache.py
+++ b/trac/versioncontrol/cache.py
@@ -202,11 +202,10 @@
                     next_youngest = self.repos.oldest_rev
                     # Ugly hack needed because doing that everytime in 
                     # oldest_rev suffers from horrendeous performance (#5213)
-                    if hasattr(self.repos, 'scope'):
-                        if self.repos.scope != '/' and not \
-                                self.repos.has_node('/', next_youngest):
-                            next_youngest = self.repos.next_rev(next_youngest,
-                                    find_initial_rev=True)
+                    if self.repos.scope != '/' and not \
+                            self.repos.has_node('/', next_youngest):
+                        next_youngest = self.repos.next_rev(next_youngest,
+                                find_initial_rev=True)
                     next_youngest = self.repos.normalize_rev(next_youngest)
                 except TracError:
                     # can't normalize oldest_rev: repository was empty
@@ -434,7 +433,6 @@
                                date)
         else:
             raise NoSuchChangeset(rev)
-        self.scope = getattr(repos.repos, 'scope', '')
 
     def get_changes(self):
         db = self.env.get_db_cnx()
diff --git a/trac/versioncontrol/svn_authz.py b/trac/versioncontrol/svn_authz.py
--- a/trac/versioncontrol/svn_authz.py
+++ b/trac/versioncontrol/svn_authz.py
@@ -164,13 +164,12 @@
 
             rm = RepositoryManager(self.env)
             repos = rm.get_repository(resource.parent.id)
-            scope = getattr(repos, 'scope', '')
             modules = [resource.parent.id or self.authz_module_name]
             if modules[0]:
                 modules.append('')
 
             def check_path(path):
-                path = '/' + join(scope, path)
+                path = '/' + join(repos.scope, path)
                 if path != '/':
                     path += '/'
                 
diff --git a/trac/versioncontrol/tests/svn_authz.py b/trac/versioncontrol/tests/svn_authz.py
--- a/trac/versioncontrol/tests/svn_authz.py
+++ b/trac/versioncontrol/tests/svn_authz.py
@@ -216,7 +216,7 @@
                         return Mock(get_changes=get_changes)
                     return Mock(scope='/scope',
                                 get_changeset=get_changeset)
-                return Mock()
+                return Mock(scope='/')
         
         rm.__class__ = TestRepositoryManager
 

