Changeset 3269

Show
Ignore:
Timestamp:
02/24/08 03:20:54 (9 months ago)
Author:
hvr
Message:

GitPlugin: made default shortrev length configurable via new git.shortrev_len option (defaults to 7)

Files:

Legend:

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

    r3240 r3269  
    2121from trac.versioncontrol.cache import CachedRepository 
    2222from trac.versioncontrol.web_ui import IPropertyRenderer 
    23 from trac.config import BoolOption 
     23from trac.config import BoolOption, IntOption 
    2424 
    2525# for some reason CachedRepository doesn't pass-through short_rev()s 
     
    137137                                        "wrap `GitRepository` in `CachedRepository`") 
    138138 
     139        _shortrev_len = IntOption('git', 'shortrev_len', 7, 
     140                                  "length rev sha sums should be tried to abbreviated to" 
     141                                  " (must be >= 4 and <= 40)") 
     142 
    139143        def get_supported_types(self): 
    140144                yield ("git", 8) 
     
    150154                                        (self._version['v_str'], self._version['v_min_str'])) 
    151155 
    152                 repos = GitRepository(dir, self.log, persistent_cache=self._persistent_cache) 
     156                repos = GitRepository(dir, self.log, 
     157                                      persistent_cache=self._persistent_cache, 
     158                                      shortrev_len=self._shortrev_len) 
    153159 
    154160                if self._cached_repository: 
     
    161167 
    162168class GitRepository(Repository): 
    163         def __init__(self, path, log, persistent_cache=False): 
     169        def __init__(self, path, log, persistent_cache=False, shortrev_len=7): 
    164170                self.logger = log 
    165171                self.gitrepo = path 
     172                self._shortrev_len = max(4, min(shortrev_len, 40)) 
    166173 
    167174                self.git = PyGIT.StorageFactory(path, log, not persistent_cache).getInstance() 
     
    195202 
    196203        def short_rev(self, rev): 
    197                 return self.git.shortrev(self.normalize_rev(rev)
     204                return self.git.shortrev(self.normalize_rev(rev), min_len=self._shortrev_len
    198205 
    199206        def get_node(self, path, rev=None):