Changeset 3208

Show
Ignore:
Timestamp:
02/11/08 05:23:13 (10 months ago)
Author:
hvr
Message:

GitPlugin: refactorized option handling

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gitplugin/0.11/tracext/git/git_fs.py

    r3207 r3208  
    2121from trac.versioncontrol.cache import CachedRepository 
    2222from trac.versioncontrol.web_ui import IPropertyRenderer 
    23 from trac.config import _TRUE_VALUES as TRUE 
     23from trac.config import BoolOption 
    2424 
    2525from genshi.builder import tag 
     
    107107        # IRepositoryConnector 
    108108 
     109        _persistent_cache = BoolOption('git', 'persistent_cache', 'false', 
     110                                       "enable persistent caching of commit tree") 
     111 
     112        _cached_repository = BoolOption('git', 'cached_repository', 'false', 
     113                                        "wrap `GitRepository` in `CachedRepository`") 
     114 
    109115        def get_supported_types(self): 
    110116                yield ("git", 8) 
     
    112118        def get_repository(self, type, dir, authname): 
    113119                """GitRepository factory method""" 
     120                assert type == "git" 
     121 
    114122                if not self._version: 
    115123                        raise TracError("GIT backend not available") 
     
    118126                                        (self._version['v_str'], self._version['v_min_str'])) 
    119127 
    120                 options = dict(self.config.options(type)) 
    121  
    122                 repos = GitRepository(dir, self.log, options) 
    123  
    124                 cached_repository = 'cached_repository' in options and options['cached_repository'] in TRUE 
    125  
    126                 if cached_repository: 
     128                repos = GitRepository(dir, self.log, persistent_cache=self._persistent_cache) 
     129 
     130                if self._cached_repository: 
    127131                        repos = CachedRepository(self.env.get_db_cnx(), repos, None, self.log) 
    128132                        self.log.info("enabled CachedRepository for '%s'" % dir) 
     
    133137 
    134138class GitRepository(Repository): 
    135         def __init__(self, path, log, options): 
     139        def __init__(self, path, log, persistent_cache=False): 
    136140                self.logger = log 
    137141                self.gitrepo = path 
    138  
    139                 persistent_cache = 'persistent_cache' in options and options['persistent_cache'] in TRUE 
    140142 
    141143                self.git = PyGIT.StorageFactory(path, log, not persistent_cache).getInstance()