Changeset 1321
- Timestamp:
- 09/29/06 07:26:23 (2 years ago)
- Files:
-
- gitplugin/0.10/gitplugin/git_fs.py (modified) (4 diffs)
- gitplugin/0.10/gitplugin/PyGIT.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gitplugin/0.10/gitplugin/git_fs.py
r1319 r1321 32 32 def __init__(self, path, log): 33 33 self.gitrepo = path 34 self.git = PyGIT. GIT(path)34 self.git = PyGIT.Storage(path) 35 35 Repository.__init__(self, "git:"+path, None, log) 36 36 … … 111 111 112 112 class GitNode(Node): 113 def __init__(self, git, path, rev ):113 def __init__(self, git, path, rev, tree_ls_info=None): 114 114 self.git = git 115 self.sha = rev; 116 self.perm = None; 115 self.sha = rev 116 self.perm = None 117 self.data_len = None 118 117 119 kind = Node.DIRECTORY 118 120 p = path.strip('/') 119 121 if p != "": 120 [(self.perm,k,self.sha,fn)]=git.tree_ls(rev, p) 122 if tree_ls_info: 123 (self.perm,k,self.sha,fn)=tree_ls_info 124 else: 125 [(self.perm,k,self.sha,fn)]=git.tree_ls(rev, p) 121 126 rev=self.git.last_change(rev, p) 122 127 if k=='tree': … … 153 158 if p != '': p = p + '/' 154 159 for e in self.git.tree_ls(self.rev, p): 155 yield GitNode(self.git, e[3], self.rev )160 yield GitNode(self.git, e[3], self.rev, e) 156 161 157 162 def get_content_type(self): … … 162 167 def get_content_length(self): 163 168 if self.isfile: 164 return len(self.get_content().read()) 169 if not self.data_len: 170 self.data_len = self.git.get_obj_size(self.sha) 171 return self.data_len 165 172 return None 166 173 gitplugin/0.10/gitplugin/PyGIT.py
r1319 r1321 15 15 import os, re 16 16 17 class GIT: 17 class GitError(Exception): 18 pass 19 20 class Storage: 18 21 def __init__(self,repo): 19 22 self.repo = repo 20 23 21 24 def _git_call_f(self,cmd): 22 #print cmd25 #print "GIT: "+cmd 23 26 (input, output, error) = os.popen3('GIT_DIR="%s" %s' % (self.repo,cmd)) 24 27 return output … … 52 55 def get_file(self, sha): 53 56 return self._git_call_f("git-cat-file blob "+sha) 57 58 def get_obj_size(self, sha): 59 return int(self._git_call("git-cat-file -s "+sha).strip()) 54 60 55 61 def parents(self, sha):
