Mercurial > kallithea
comparison 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 |
comparison
equal
deleted
inserted
replaced
2967:e46d0a90556e | 2968:4abfb1afd9f5 |
---|---|
9 from rhodecode.lib.vcs.exceptions import VCSError | 9 from rhodecode.lib.vcs.exceptions import VCSError |
10 from rhodecode.lib.vcs.exceptions import ChangesetDoesNotExistError | 10 from rhodecode.lib.vcs.exceptions import ChangesetDoesNotExistError |
11 from rhodecode.lib.vcs.exceptions import ImproperArchiveTypeError | 11 from rhodecode.lib.vcs.exceptions import ImproperArchiveTypeError |
12 from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyChangeset | 12 from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyChangeset |
13 from rhodecode.lib.vcs.nodes import FileNode, DirNode, NodeKind, RootNode, \ | 13 from rhodecode.lib.vcs.nodes import FileNode, DirNode, NodeKind, RootNode, \ |
14 RemovedFileNode, SubModuleNode | 14 RemovedFileNode, SubModuleNode, ChangedFileNodesGenerator,\ |
15 AddedFileNodesGenerator, RemovedFileNodesGenerator | |
15 from rhodecode.lib.vcs.utils import safe_unicode | 16 from rhodecode.lib.vcs.utils import safe_unicode |
16 from rhodecode.lib.vcs.utils import date_fromtimestamp | 17 from rhodecode.lib.vcs.utils import date_fromtimestamp |
17 from rhodecode.lib.vcs.utils.lazy import LazyProperty | 18 from rhodecode.lib.vcs.utils.lazy import LazyProperty |
18 | 19 |
19 | 20 |
466 """ | 467 """ |
467 Returns list of added ``FileNode`` objects. | 468 Returns list of added ``FileNode`` objects. |
468 """ | 469 """ |
469 if not self.parents: | 470 if not self.parents: |
470 return list(self._get_file_nodes()) | 471 return list(self._get_file_nodes()) |
471 return [self.get_node(path) for path in self._get_paths_for_status('added')] | 472 return AddedFileNodesGenerator([n for n in |
473 self._get_paths_for_status('added')], self) | |
472 | 474 |
473 @LazyProperty | 475 @LazyProperty |
474 def changed(self): | 476 def changed(self): |
475 """ | 477 """ |
476 Returns list of modified ``FileNode`` objects. | 478 Returns list of modified ``FileNode`` objects. |
477 """ | 479 """ |
478 if not self.parents: | 480 if not self.parents: |
479 return [] | 481 return [] |
480 return [self.get_node(path) for path in self._get_paths_for_status('modified')] | 482 return ChangedFileNodesGenerator([n for n in |
483 self._get_paths_for_status('modified')], self) | |
481 | 484 |
482 @LazyProperty | 485 @LazyProperty |
483 def removed(self): | 486 def removed(self): |
484 """ | 487 """ |
485 Returns list of removed ``FileNode`` objects. | 488 Returns list of removed ``FileNode`` objects. |
486 """ | 489 """ |
487 if not self.parents: | 490 if not self.parents: |
488 return [] | 491 return [] |
489 return [RemovedFileNode(path) for path in self._get_paths_for_status('deleted')] | 492 return RemovedFileNodesGenerator([n for n in |
493 self._get_paths_for_status('deleted')], self) |