Mercurial > kallithea
changeset 2539:da18c423b100 beta
Invalidate gits parsed_refs cache after commit, tagging or tag remove
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 03 Jul 2012 00:53:41 +0200 |
parents | 827d4252d81f |
children | b1975bb589c5 |
files | rhodecode/lib/vcs/backends/git/inmemory.py rhodecode/lib/vcs/backends/git/repository.py |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/vcs/backends/git/inmemory.py Tue Jul 03 00:20:12 2012 +0200 +++ b/rhodecode/lib/vcs/backends/git/inmemory.py Tue Jul 03 00:53:41 2012 +0200 @@ -149,6 +149,8 @@ # Update vcs repository object & recreate dulwich repo self.repository.revisions.append(commit.id) self.repository._repo = Repo(self.repository.path) + # invalidate parsed refs after commit + self.repository._parsed_refs = self.repository._get_parsed_refs() tip = self.repository.get_changeset() self.reset() return tip
--- a/rhodecode/lib/vcs/backends/git/repository.py Tue Jul 03 00:20:12 2012 +0200 +++ b/rhodecode/lib/vcs/backends/git/repository.py Tue Jul 03 00:53:41 2012 +0200 @@ -312,6 +312,7 @@ changeset.raw_id) self._repo.refs["refs/tags/%s" % name] = changeset._commit.id + self._parsed_refs = self._get_parsed_refs() self.tags = self._get_tags() return changeset @@ -331,12 +332,16 @@ tagpath = posixpath.join(self._repo.refs.path, 'refs', 'tags', name) try: os.remove(tagpath) + self._parsed_refs = self._get_parsed_refs() self.tags = self._get_tags() except OSError, e: raise RepositoryError(e.strerror) @LazyProperty def _parsed_refs(self): + return self._get_parsed_refs() + + def _get_parsed_refs(self): refs = self._repo.get_refs() keys = [('refs/heads/', 'H'), ('refs/remotes/origin/', 'RH'),