Changeset 7695
- Timestamp:
- Feb 21, 2010, 10:28:17 PM (14 years ago)
- Location:
- gitplugin/0.12
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
gitplugin/0.12/setup.py
r5391 r7695 5 5 setup( 6 6 name='TracGit', 7 install_requires= 'Trac ==0.11, ==0.11rc2, ==0.11rc1, ==0.11b2, ==0.11b1, >=0.11dev',8 description='GIT version control plugin for Trac 0.1 1',7 install_requires=[],#'Trac ==0.12', 8 description='GIT version control plugin for Trac 0.12', 9 9 author='Herbert Valerio Riedel', 10 10 author_email='hvr@gnu.org', 11 11 keywords='trac scm plugin git', 12 12 url="http://trac-hacks.org/wiki/GitPlugin", 13 version='0.1 1.0.2',13 version='0.12.0.2', 14 14 license="GPL", 15 15 long_description=""" 16 This Trac 0.1 1plugin provides support for the GIT SCM.16 This Trac 0.12 plugin provides support for the GIT SCM. 17 17 18 18 See http://trac-hacks.org/wiki/GitPlugin for more details. -
gitplugin/0.12/tracext/git/PyGIT.py
r6442 r7695 506 506 raise GitError("read_commit called with empty commit_id") 507 507 508 commit_id = s tr(commit_id)508 commit_id = self.fullrev(commit_id) 509 509 510 510 db = self.get_commits() -
gitplugin/0.12/tracext/git/git_fs.py
r6442 r7695 27 27 def short_rev(self, path): 28 28 return self.repos.short_rev(path) 29 def normalize_rev(self, rev): 30 if not rev: 31 return self.repos.get_youngest_rev() 32 normrev=self.repos.git.verifyrev(rev) 33 if normrev is None: 34 raise NoSuchChangeset(rev) 35 return normrev 36 29 37 30 38 from genshi.builder import tag … … 144 152 yield ("git", 8) 145 153 146 def get_repository(self, type, dir, authname):154 def get_repository(self, type, dir, params): 147 155 """GitRepository factory method""" 148 156 assert type == "git" … … 154 162 (self._version['v_str'], self._version['v_min_str'])) 155 163 156 repos = GitRepository(dir, self.log,164 repos = GitRepository(dir, params, self.log, 157 165 persistent_cache=self._persistent_cache, 158 166 git_bin=self._git_bin, … … 160 168 161 169 if self._cached_repository: 162 repos = CachedRepository2(self.env .get_db_cnx(), repos, None, self.log)170 repos = CachedRepository2(self.env, repos, self.log) 163 171 self.log.info("enabled CachedRepository for '%s'" % dir) 164 172 else: … … 168 176 169 177 class GitRepository(Repository): 170 def __init__(self, path, log, persistent_cache=False, git_bin='git', shortrev_len=7): 178 def __init__(self, path, params, log, persistent_cache=False, 179 git_bin='git', shortrev_len=7): 171 180 self.logger = log 172 181 self.gitrepo = path 182 self.params = params 173 183 self._shortrev_len = max(4, min(shortrev_len, 40)) 174 184 175 185 self.git = PyGIT.StorageFactory(path, log, not persistent_cache, 176 186 git_bin=git_bin).getInstance() 177 Repository.__init__(self, "git:"+path, None, log)187 Repository.__init__(self, "git:"+path, self.params, log) 178 188 179 189 def close(self): … … 207 217 208 218 def get_node(self, path, rev=None): 209 return GitNode(self .git, path, rev, self.log)219 return GitNode(self, path, rev, self.log) 210 220 211 221 def get_quickjump_entries(self, rev): … … 221 231 def get_changeset(self, rev): 222 232 """GitChangeset factory method""" 223 return GitChangeset(self .git, rev)233 return GitChangeset(self, rev) 224 234 225 235 def get_changes(self, old_path, old_rev, new_path, new_rev, ignore_ancestry=0): … … 260 270 self.sync() 261 271 262 def sync(self, rev_callback=None ):272 def sync(self, rev_callback=None, clean=None): 263 273 if rev_callback: 264 274 revs = set(self.git.all_revs()) … … 273 283 274 284 class GitNode(Node): 275 def __init__(self, git, path, rev, log, ls_tree_info=None):285 def __init__(self, repos, path, rev, log, ls_tree_info=None): 276 286 self.log = log 277 self. git = git287 self.repos = repos 278 288 self.fs_sha = None # points to either tree or blobs 279 289 self.fs_perm = None … … 285 295 if p: # ie. not the root-tree 286 296 if not ls_tree_info: 287 ls_tree_info = git.ls_tree(rev, p) or None297 ls_tree_info = repos.git.ls_tree(rev, p) or None 288 298 if ls_tree_info: 289 299 [ls_tree_info] = ls_tree_info … … 295 305 296 306 # fix-up to the last commit-rev that touched this node 297 rev = self.git.last_change(rev, p)307 rev = repos.git.last_change(rev, p) 298 308 299 309 if k=='tree': … … 307 317 self.created_rev = rev 308 318 309 Node.__init__(self, path, rev, kind)319 Node.__init__(self, repos, path, rev, kind) 310 320 311 321 def __git_path(self): … … 324 334 return None 325 335 326 return self. git.get_file(self.fs_sha)336 return self.repos.git.get_file(self.fs_sha) 327 337 328 338 def get_properties(self): … … 333 343 return 334 344 335 return [ rev for (rev,lineno) in self. git.blame(self.rev, self.__git_path()) ]345 return [ rev for (rev,lineno) in self.repos.git.blame(self.rev, self.__git_path()) ] 336 346 337 347 def get_entries(self): … … 339 349 return 340 350 341 for ent in self. git.ls_tree(self.rev, self.__git_path()):342 yield GitNode(self. git, ent[-1], self.rev, self.log, ent)351 for ent in self.repos.git.ls_tree(self.rev, self.__git_path()): 352 yield GitNode(self.repos, ent[-1], self.rev, self.log, ent) 343 353 344 354 def get_content_type(self): … … 353 363 354 364 if self.fs_size is None: 355 self.fs_size = self. git.get_obj_size(self.fs_sha)365 self.fs_size = self.repos.git.get_obj_size(self.fs_sha) 356 366 357 367 return self.fs_size … … 359 369 def get_history(self, limit=None): 360 370 # TODO: find a way to follow renames/copies 361 for is_last,rev in _last_iterable(self. git.history(self.rev, self.__git_path(), limit)):371 for is_last,rev in _last_iterable(self.repos.git.history(self.rev, self.__git_path(), limit)): 362 372 yield (self.path, rev, Changeset.EDIT if not is_last else Changeset.ADD) 363 373 … … 367 377 368 378 try: 369 msg, props = self. git.read_commit(self.rev)379 msg, props = self.repos.git.read_commit(self.rev) 370 380 user,ts = _parse_user_time(props['committer'][0]) 371 381 except: … … 386 396 } # TODO: U, X, B 387 397 388 def __init__(self, git, sha):389 self. git = git398 def __init__(self, repos, sha): 399 self.repos = repos 390 400 try: 391 (msg, props) = git.read_commit(sha)401 (msg, props) = repos.git.read_commit(sha) 392 402 except PyGIT.GitErrorSha: 393 403 raise NoSuchChangeset(sha) … … 395 405 396 406 assert 'children' not in props 397 _children = list( git.children(sha))407 _children = list(repos.git.children(sha)) 398 408 if _children: 399 409 props['children'] = _children … … 402 412 (user_, time_) = _parse_user_time(props['committer'][0]) 403 413 404 Changeset.__init__(self, sha, msg, user_, time_)414 Changeset.__init__(self, repos, sha, msg, user_, time_) 405 415 406 416 def get_properties(self): … … 424 434 for parent in self.props.get('parent', [None]): 425 435 for mode1,mode2,obj1,obj2,action,path1,path2 in \ 426 self. git.diff_tree(parent, self.rev, find_renames=True):436 self.repos.git.diff_tree(parent, self.rev, find_renames=True): 427 437 path = path2 or path1 428 438 p_path, p_rev = path1, parent
Note: See TracChangeset
for help on using the changeset viewer.