mercurial/commands.py
changeset 3571 736a78469a85
parent 3568 23f7d9621783
child 3572 fe03c9a476f6
equal deleted inserted replaced
3570:c141d07198b9 3571:736a78469a85
   228             yield 'window', revs[0] < revs[-1], revs[-1]
   228             yield 'window', revs[0] < revs[-1], revs[-1]
   229             nrevs = [rev for rev in revs[i:i+window] if want(rev)]
   229             nrevs = [rev for rev in revs[i:i+window] if want(rev)]
   230             srevs = list(nrevs)
   230             srevs = list(nrevs)
   231             srevs.sort()
   231             srevs.sort()
   232             for rev in srevs:
   232             for rev in srevs:
   233                 fns = fncache.get(rev) or filter(matchfn, change(rev)[3])
   233                 fns = fncache.get(rev)
       
   234                 if not fns:
       
   235                     def fns_generator():
       
   236                         for f in change(rev)[3]:
       
   237                             if matchfn(f):
       
   238                                 yield f
       
   239                     fns = fns_generator()
   234                 yield 'add', rev, fns
   240                 yield 'add', rev, fns
   235             for rev in nrevs:
   241             for rev in nrevs:
   236                 yield 'iter', rev, None
   242                 yield 'iter', rev, None
   237     return iterate(), matchfn
   243     return iterate(), matchfn
   238 
   244