comparison rhodecode/lib/base.py @ 1340:cbdd583f1e58 beta

reverted copy of cached instance: CPython changelog total_time 39.7253162861 average on req 0.993132907152 changesets total_time 42.5156304836 average on req 0.425156304836 Total: 546 MB changelog total_time 35.5851216316 average on req 0.889628040791 changesets total_time 30.3608012199 average on req 0.303608012199 Total: 475 MB
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 15 May 2011 18:29:33 +0200
parents c1516b35f91d
children e0f670b987eb
comparison
equal deleted inserted replaced
1339:e861eb1c4a2f 1340:cbdd583f1e58
1 """The base Controller API 1 """The base Controller API
2 2
3 Provides the BaseController class for subclassing. 3 Provides the BaseController class for subclassing.
4 """ 4 """
5 import copy
6
7 from pylons import config, tmpl_context as c, request, session 5 from pylons import config, tmpl_context as c, request, session
8 from pylons.controllers import WSGIController 6 from pylons.controllers import WSGIController
9 from pylons.templating import render_mako as render 7 from pylons.templating import render_mako as render
10 8
11 from rhodecode import __version__ 9 from rhodecode import __version__
62 60
63 def __before__(self): 61 def __before__(self):
64 super(BaseRepoController, self).__before__() 62 super(BaseRepoController, self).__before__()
65 if c.repo_name: 63 if c.repo_name:
66 64
67 r, dbrepo = self.scm_model.get(c.repo_name, retval='repo') 65 c.rhodecode_repo, dbrepo = self.scm_model.get(c.repo_name, retval='repo')
68 66
69 if r is not None: 67 if c.rhodecode_repo is not None:
70 c.repository_followers = \ 68 c.repository_followers = \
71 self.scm_model.get_followers(c.repo_name) 69 self.scm_model.get_followers(c.repo_name)
72 c.repository_forks = self.scm_model.get_forks(c.repo_name) 70 c.repository_forks = self.scm_model.get_forks(c.repo_name)
73 else: 71 else:
74 c.repository_followers = 0 72 c.repository_followers = 0
75 c.repository_forks = 0 73 c.repository_forks = 0
76 74
77 # Since RhodeCode uses heavy memory caching we make a deepcopy
78 # of object taken from cache. This way we lose reference to cached
79 # instance in memory and keep it relatively small even for
80 # very large number of changesets
81 c.rhodecode_repo = copy.copy(r)