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: