Mercurial > public > mercurial-scm > hg
comparison mercurial/scmutil.py @ 17992:c95210b82c0e
clfilter: remove usage of `range` and `xrange` in scmutil.revrange
For changelog level filtering to take effect it need to be used for any
iteration.
This changeset removes usage of `range` and `xrange` that survived the first
pass.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Tue, 20 Nov 2012 19:05:46 +0100 |
parents | 3cb032d50447 |
children | 203b7a759218 |
comparison
equal
deleted
inserted
replaced
17991:d605a82cf189 | 17992:c95210b82c0e |
---|---|
632 | 632 |
633 if _revrangesep in spec: | 633 if _revrangesep in spec: |
634 start, end = spec.split(_revrangesep, 1) | 634 start, end = spec.split(_revrangesep, 1) |
635 start = revfix(repo, start, 0) | 635 start = revfix(repo, start, 0) |
636 end = revfix(repo, end, len(repo) - 1) | 636 end = revfix(repo, end, len(repo) - 1) |
637 step = start > end and -1 or 1 | 637 rangeiter = repo.changelog.revs(start, end) |
638 if not seen and not l: | 638 if not seen and not l: |
639 # by far the most common case: revs = ["-1:0"] | 639 # by far the most common case: revs = ["-1:0"] |
640 l = range(start, end + step, step) | 640 l = list(rangeiter) |
641 # defer syncing seen until next iteration | 641 # defer syncing seen until next iteration |
642 continue | 642 continue |
643 newrevs = set(xrange(start, end + step, step)) | 643 newrevs = set(rangeiter) |
644 if seen: | 644 if seen: |
645 newrevs.difference_update(seen) | 645 newrevs.difference_update(seen) |
646 seen.update(newrevs) | 646 seen.update(newrevs) |
647 else: | 647 else: |
648 seen = newrevs | 648 seen = newrevs |