Changeset 3188
- Timestamp:
- 02/06/08 11:04:11 (10 months ago)
- Files:
-
- gitplugin/0.11/gitplugin/PyGIT.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gitplugin/0.11/gitplugin/PyGIT.py
r3187 r3188 105 105 self.logger.debug("triggered rebuild of commit tree db for %d" % id(self)) 106 106 new_db = {} 107 new_tags = set([]) 107 108 parent = None 108 109 youngest = None 109 110 ord_rev = 0 111 for revs in self._git_call_f("git-rev-parse --tags").readlines(): 112 new_tags.add(revs.strip()) 113 110 114 for revs in self._git_call_f("git-rev-list --parents --all").readlines(): 111 115 revs = revs.strip().split() … … 136 140 new_db[parent] = (set([rev]), set(), 0) # dummy ordinal_id 137 141 138 self._commit_db = new_db, parent 142 self._commit_db = new_db, parent, new_tags 139 143 self.last_youngest_rev = youngest 140 144 self.logger.debug("rebuilt commit tree db for %d with %d entries" % (id(self),len(new_db))) … … 221 225 222 226 db = self.get_commits() 227 tag_db = self._commit_db[2] 228 223 229 if db.has_key(rev): 224 230 return rev … … 227 233 if len(rc)==0: 228 234 return None 229 return rc 235 236 if db.has_key(rc): 237 return rc 238 elif rc in tag_db: 239 sha=self._git_call("git-cat-file tag '%s'" % rc).split(None, 2)[:2] 240 if sha[0] != 'object': 241 self.logger.debug("unexpected result from 'git-cat-file tag %s'" % rc) 242 return None 243 return sha[1] 244 245 return None 230 246 231 247 def shortrev(self,rev): … … 256 272 257 273 def read_commit(self, sha): 274 if not sha: 275 raise GitErrorSha 276 258 277 db = self.get_commits() 259 278 if sha not in db:
