# HG changeset patch # User Daniel Dourvaris # Date 2016-06-22 09:53:43 # Node ID 27f3d68226efc11d1e9b13077293e3a31c13647a # Parent 5ee10d14ba77630e236bc3900335a5ed0f30585f speedup: check local session for repo by repo name first diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -1373,7 +1373,13 @@ class Repository(Base, BaseModel): @classmethod def get_by_repo_name(cls, repo_name): - q = Session().query(cls).filter(cls.repo_name == repo_name) + session = Session() + for (klass, pkey), instance in session.identity_map.items(): + if cls == klass: + if getattr(instance, 'repo_name') == repo_name: + return instance + + q = session.query(cls).filter(cls.repo_name == repo_name) q = q.options(joinedload(Repository.fork))\ .options(joinedload(Repository.user))\ .options(joinedload(Repository.group))