Mercurial > hg
comparison mercurial/revset.py @ 20287:f3cef19befb1
revset: avoid loop for "match.files()" having always one element for efficiency
This patch avoids the loop for "match.files()" having always one
element in revset predicate "filelog()" for efficiency: "match" object
"m" is constructed with "[pat]" as "patterns" argument.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Fri, 17 Jan 2014 23:42:12 +0900 |
parents | 760151697a4f |
children | b61ad01c4e73 |
comparison
equal
deleted
inserted
replaced
20286:760151697a4f | 20287:f3cef19befb1 |
---|---|
720 m = matchmod.match(repo.root, repo.getcwd(), [pat], default='relpath', | 720 m = matchmod.match(repo.root, repo.getcwd(), [pat], default='relpath', |
721 ctx=repo[None]) | 721 ctx=repo[None]) |
722 s = set() | 722 s = set() |
723 | 723 |
724 if not matchmod.patkind(pat): | 724 if not matchmod.patkind(pat): |
725 for f in m.files(): | 725 f = m.files()[0] |
726 fl = repo.file(f) | 726 fl = repo.file(f) |
727 for fr in fl: | 727 for fr in fl: |
728 s.add(fl.linkrev(fr)) | 728 s.add(fl.linkrev(fr)) |
729 else: | 729 else: |
730 for f in repo[None]: | 730 for f in repo[None]: |
731 if m(f): | 731 if m(f): |
732 fl = repo.file(f) | 732 fl = repo.file(f) |
733 for fr in fl: | 733 for fr in fl: |