Edgewall Software

Ticket #9566: 9566-formal-scope-r10007.patch

File 9566-formal-scope-r10007.patch, 2.9 KB (added by rblank, 21 months ago)

Formalize the repository scope.

  • trac/versioncontrol/api.py

    diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
    a b  
    713713class Repository(object): 
    714714    """Base class for a repository provided by a version control system.""" 
    715715 
     716    scope = '/' 
     717     
    716718    def __init__(self, name, params, log): 
    717719        """Initialize a repository. 
    718720         
  • trac/versioncontrol/cache.py

    diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
    a b  
    202202                    next_youngest = self.repos.oldest_rev 
    203203                    # Ugly hack needed because doing that everytime in  
    204204                    # 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) 
    210209                    next_youngest = self.repos.normalize_rev(next_youngest) 
    211210                except TracError: 
    212211                    # can't normalize oldest_rev: repository was empty 
     
    434433                               date) 
    435434        else: 
    436435            raise NoSuchChangeset(rev) 
    437         self.scope = getattr(repos.repos, 'scope', '') 
    438436 
    439437    def get_changes(self): 
    440438        db = self.env.get_db_cnx() 
  • trac/versioncontrol/svn_authz.py

    diff --git a/trac/versioncontrol/svn_authz.py b/trac/versioncontrol/svn_authz.py
    a b  
    164164 
    165165            rm = RepositoryManager(self.env) 
    166166            repos = rm.get_repository(resource.parent.id) 
    167             scope = getattr(repos, 'scope', '') 
    168167            modules = [resource.parent.id or self.authz_module_name] 
    169168            if modules[0]: 
    170169                modules.append('') 
    171170 
    172171            def check_path(path): 
    173                 path = '/' + join(scope, path) 
     172                path = '/' + join(repos.scope, path) 
    174173                if path != '/': 
    175174                    path += '/' 
    176175                 
  • trac/versioncontrol/tests/svn_authz.py

    diff --git a/trac/versioncontrol/tests/svn_authz.py b/trac/versioncontrol/tests/svn_authz.py
    a b  
    216216                        return Mock(get_changes=get_changes) 
    217217                    return Mock(scope='/scope', 
    218218                                get_changeset=get_changeset) 
    219                 return Mock() 
     219                return Mock(scope='/') 
    220220         
    221221        rm.__class__ = TestRepositoryManager 
    222222