# HG changeset patch # User Mads Kiilerich # Date 2019-11-20 23:49:40 # Node ID ad8328c8ed40adf32c85387b92cbb28c268ed8ca # Parent c80f87eed7b65a1de43910076503bae7af2f1103 vcs: fix get_changesets to .reverse() list of revision hashes in place instead of using reversed() This is slightly more performant, and will also make CollectionGenerator work with reverse=True. Before, CollectionGenerator was used on get_changesets, but never with reverse option. Trying to use reverse, it would fail when applying len(): TypeError: object of type 'listreverseiterator' has no len() diff --git a/kallithea/lib/vcs/backends/git/repository.py b/kallithea/lib/vcs/backends/git/repository.py --- a/kallithea/lib/vcs/backends/git/repository.py +++ b/kallithea/lib/vcs/backends/git/repository.py @@ -572,7 +572,8 @@ class GitRepository(BaseRepository): revs = revs[start_pos:end_pos] if reverse: - revs = reversed(revs) + revs.reverse() + return CollectionGenerator(self, revs) def get_diff(self, rev1, rev2, path=None, ignore_whitespace=False, diff --git a/kallithea/lib/vcs/backends/hg/repository.py b/kallithea/lib/vcs/backends/hg/repository.py --- a/kallithea/lib/vcs/backends/hg/repository.py +++ b/kallithea/lib/vcs/backends/hg/repository.py @@ -553,7 +553,7 @@ class MercurialRepository(BaseRepository # would be to get rid of this function entirely and use revsets revs = list(revisions)[start_pos:end_pos] if reverse: - revs = reversed(revs) + revs.reverse() return CollectionGenerator(self, revs)