diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-10-27 15:07:01 +0200 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-10-27 15:07:01 +0200 |
commit | 074cbef6457da0a38134843b4b263984cd2c2f73 (patch) | |
tree | af126b2d439693ab31612959283864b93fc6d8c0 /rhodecode/lib/vcs/backends/git/changeset.py | |
parent | 1ba7e60f8f19c9fe35222612d0fc5942e14a39bd (diff) |
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
--HG--
branch : beta
Diffstat (limited to 'rhodecode/lib/vcs/backends/git/changeset.py')
-rw-r--r-- | rhodecode/lib/vcs/backends/git/changeset.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/rhodecode/lib/vcs/backends/git/changeset.py b/rhodecode/lib/vcs/backends/git/changeset.py index 224d94ff..9bd6d308 100644 --- a/rhodecode/lib/vcs/backends/git/changeset.py +++ b/rhodecode/lib/vcs/backends/git/changeset.py @@ -11,7 +11,8 @@ from rhodecode.lib.vcs.exceptions import ChangesetDoesNotExistError 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 @@ class GitChangeset(BaseChangeset): """ 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 @@ class GitChangeset(BaseChangeset): """ 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 @@ class GitChangeset(BaseChangeset): """ 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) |