changeset 3579:11feddcd75bb beta

after hooks cleanup we don't need to have ui injections into repo so we don't need to cache git repos - change to @property fixes all odd concurrency issues with zlib decompressions
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 24 Mar 2013 19:58:24 +0100
parents f3283898d431
children 7b9d4f6bb04e
files rhodecode/lib/middleware/simplegit.py rhodecode/lib/vcs/backends/git/repository.py
diffstat 2 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/middleware/simplegit.py	Sun Mar 24 19:53:09 2013 +0100
+++ b/rhodecode/lib/middleware/simplegit.py	Sun Mar 24 19:58:24 2013 +0100
@@ -317,7 +317,6 @@
         from rhodecode.model.db import Repository
         _repo = Repository.get_by_repo_name(repo_name)
         _repo = _repo.scm_instance
-        _repo._repo.ui = baseui
 
         _hooks = dict(baseui.configitems('hooks')) or {}
         if action == 'pull':
--- a/rhodecode/lib/vcs/backends/git/repository.py	Sun Mar 24 19:53:09 2013 +0100
+++ b/rhodecode/lib/vcs/backends/git/repository.py	Sun Mar 24 19:58:24 2013 +0100
@@ -64,7 +64,7 @@
             abspath(get_user_home(), '.gitconfig'),
         ]
 
-    @ThreadLocalLazyProperty
+    @property
     def _repo(self):
         return Repo(self.path)
 
@@ -419,7 +419,9 @@
         return self._get_parsed_refs()
 
     def _get_parsed_refs(self):
-        refs = self._repo.get_refs()
+        # cache the property
+        _repo = self._repo
+        refs = _repo.get_refs()
         keys = [('refs/heads/', 'H'),
                 ('refs/remotes/origin/', 'RH'),
                 ('refs/tags/', 'T')]
@@ -429,9 +431,9 @@
                 if ref.startswith(k):
                     _key = ref[len(k):]
                     if type_ == 'T':
-                        obj = self._repo.get_object(sha)
+                        obj = _repo.get_object(sha)
                         if isinstance(obj, Tag):
-                            sha = self._repo.get_object(sha).object[1]
+                            sha = _repo.get_object(sha).object[1]
                     _refs[_key] = [sha, type_]
                     break
         return _refs