Mercurial > kallithea
diff rhodecode/lib/vcs/backends/git/changeset.py @ 2968:4abfb1afd9f5 beta
fixes #630 git statistics do too much work making them slow.
added/changed/removed methods didn't use generator methods to return the list of changes
- added test for that case
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 27 Oct 2012 15:07:01 +0200 |
parents | ba4fb9c441c6 |
children | e0da2c0ecee1 |
line wrap: on
line diff
--- a/rhodecode/lib/vcs/backends/git/changeset.py Sat Oct 27 14:33:29 2012 +0200 +++ b/rhodecode/lib/vcs/backends/git/changeset.py Sat Oct 27 15:07:01 2012 +0200 @@ -11,7 +11,8 @@ from rhodecode.lib.vcs.exceptions import ImproperArchiveTypeError from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyChangeset from rhodecode.lib.vcs.nodes import FileNode, DirNode, NodeKind, RootNode, \ - RemovedFileNode, SubModuleNode + RemovedFileNode, SubModuleNode, ChangedFileNodesGenerator,\ + AddedFileNodesGenerator, RemovedFileNodesGenerator from rhodecode.lib.vcs.utils import safe_unicode from rhodecode.lib.vcs.utils import date_fromtimestamp from rhodecode.lib.vcs.utils.lazy import LazyProperty @@ -468,7 +469,8 @@ """ if not self.parents: return list(self._get_file_nodes()) - return [self.get_node(path) for path in self._get_paths_for_status('added')] + return AddedFileNodesGenerator([n for n in + self._get_paths_for_status('added')], self) @LazyProperty def changed(self): @@ -477,7 +479,8 @@ """ if not self.parents: return [] - return [self.get_node(path) for path in self._get_paths_for_status('modified')] + return ChangedFileNodesGenerator([n for n in + self._get_paths_for_status('modified')], self) @LazyProperty def removed(self): @@ -486,4 +489,5 @@ """ if not self.parents: return [] - return [RemovedFileNode(path) for path in self._get_paths_for_status('deleted')] + return RemovedFileNodesGenerator([n for n in + self._get_paths_for_status('deleted')], self)