mercurial/revset.py
changeset 27028 f92053df8f0b
parent 26778 a95c975f42e3
child 27293 9e06e7fb037d
equal deleted inserted replaced
27027:a01ecbcfaf84 27028:f92053df8f0b
  1162         default = 'glob'
  1162         default = 'glob'
  1163 
  1163 
  1164     m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
  1164     m = matchmod.match(repo.root, repo.getcwd(), pats, include=inc,
  1165                        exclude=exc, ctx=repo[rev], default=default)
  1165                        exclude=exc, ctx=repo[rev], default=default)
  1166 
  1166 
       
  1167     # This directly read the changelog data as creating changectx for all
       
  1168     # revisions is quite expensive.
       
  1169     getchangeset = repo.changelog.read
       
  1170     wdirrev = node.wdirrev
  1167     def matches(x):
  1171     def matches(x):
  1168         for f in repo[x].files():
  1172         if x == wdirrev:
       
  1173             files = repo[x].files()
       
  1174         else:
       
  1175             files = getchangeset(x)[3]
       
  1176         for f in files:
  1169             if m(f):
  1177             if m(f):
  1170                 return True
  1178                 return True
  1171         return False
  1179         return False
  1172 
  1180 
  1173     return subset.filter(matches)
  1181     return subset.filter(matches)