From patchwork Fri Jan 17 14:57:05 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3, of, 6] revset: avoid loop for "match.files()" having always one element for efficiency From: Katsunori FUJIWARA X-Patchwork-Id: 3367 Message-Id: <2a4c78d82827918ffbb7.1389970625@juju> To: mercurial-devel@selenic.com Date: Fri, 17 Jan 2014 23:57:05 +0900 # HG changeset patch # User FUJIWARA Katsunori # Date 1389969732 -32400 # Fri Jan 17 23:42:12 2014 +0900 # Node ID 2a4c78d82827918ffbb7109c75e083cfdb260616 # Parent fbeb931aa253e163ebfd44f7859f97aae7a398bf 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. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -722,10 +722,10 @@ s = set() if not matchmod.patkind(pat): - for f in m.files(): - fl = repo.file(f) - for fr in fl: - s.add(fl.linkrev(fr)) + f = m.files()[0] + fl = repo.file(f) + for fr in fl: + s.add(fl.linkrev(fr)) else: for f in repo[None]: if m(f):