diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
|
a
|
b
|
|
| 713 | 713 | class Repository(object): |
| 714 | 714 | """Base class for a repository provided by a version control system.""" |
| 715 | 715 | |
| | 716 | scope = '/' |
| | 717 | |
| 716 | 718 | def __init__(self, name, params, log): |
| 717 | 719 | """Initialize a repository. |
| 718 | 720 | |
diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
|
a
|
b
|
|
| 202 | 202 | next_youngest = self.repos.oldest_rev |
| 203 | 203 | # Ugly hack needed because doing that everytime in |
| 204 | 204 | # oldest_rev suffers from horrendeous performance (#5213) |
| 205 | | if hasattr(self.repos, 'scope'): |
| 206 | | if self.repos.scope != '/' and not \ |
| 207 | | self.repos.has_node('/', next_youngest): |
| 208 | | next_youngest = self.repos.next_rev(next_youngest, |
| 209 | | find_initial_rev=True) |
| | 205 | if self.repos.scope != '/' and not \ |
| | 206 | self.repos.has_node('/', next_youngest): |
| | 207 | next_youngest = self.repos.next_rev(next_youngest, |
| | 208 | find_initial_rev=True) |
| 210 | 209 | next_youngest = self.repos.normalize_rev(next_youngest) |
| 211 | 210 | except TracError: |
| 212 | 211 | # can't normalize oldest_rev: repository was empty |
| … |
… |
|
| 434 | 433 | date) |
| 435 | 434 | else: |
| 436 | 435 | raise NoSuchChangeset(rev) |
| 437 | | self.scope = getattr(repos.repos, 'scope', '') |
| 438 | 436 | |
| 439 | 437 | def get_changes(self): |
| 440 | 438 | db = self.env.get_db_cnx() |
diff --git a/trac/versioncontrol/svn_authz.py b/trac/versioncontrol/svn_authz.py
|
a
|
b
|
|
| 164 | 164 | |
| 165 | 165 | rm = RepositoryManager(self.env) |
| 166 | 166 | repos = rm.get_repository(resource.parent.id) |
| 167 | | scope = getattr(repos, 'scope', '') |
| 168 | 167 | modules = [resource.parent.id or self.authz_module_name] |
| 169 | 168 | if modules[0]: |
| 170 | 169 | modules.append('') |
| 171 | 170 | |
| 172 | 171 | def check_path(path): |
| 173 | | path = '/' + join(scope, path) |
| | 172 | path = '/' + join(repos.scope, path) |
| 174 | 173 | if path != '/': |
| 175 | 174 | path += '/' |
| 176 | 175 | |
diff --git a/trac/versioncontrol/tests/svn_authz.py b/trac/versioncontrol/tests/svn_authz.py
|
a
|
b
|
|
| 216 | 216 | return Mock(get_changes=get_changes) |
| 217 | 217 | return Mock(scope='/scope', |
| 218 | 218 | get_changeset=get_changeset) |
| 219 | | return Mock() |
| | 219 | return Mock(scope='/') |
| 220 | 220 | |
| 221 | 221 | rm.__class__ = TestRepositoryManager |
| 222 | 222 | |